【发布时间】:2014-01-20 16:18:27
【问题描述】:
我正在使用 Laravel 作为网站。我有一个用户可以联系我的页面。这会使用 SwiftMailer 捆绑包向我发送一封电子邮件。我刚刚注意到在尝试发送消息时出现以下错误
Fatal error: Uncaught exception 'Swift_TransportException'
从这里抛出异常/Applications/MAMP/htdocs/yooies_site/bundles/swiftmailer/library/classes/Swift/Transport/Esmtp/AuthHandler.php on line 176
此位置的代码是:
throw new Swift_TransportException(
'Failed to authenticate on SMTP server with username "' .
$this->_username . '" using ' . $count . ' possible authenticators'
);
错误的原因不用担心(我发现我更改了我的邮件密码并忘记更改我的站点电子邮件配置)
我遇到的问题是我设置了 Laravel 来记录任何异常,而不是在主页上显示它们。我的 error.php 配置文件中有以下设置
'detail' => false,
'log' => true,
那为什么我的网站在页面上显示异常而不是 500 错误?
此处的完整堆栈跟踪(注意我已删除我的站点真实名称并替换为“站点”
致命错误:未捕获的异常“Swift_TransportException” 带有消息“无法使用 2 个可能的身份验证器在用户名“info+site.com”的 SMTP 服务器上进行身份验证” 在 /Applications/MAMP/htdocs/site/bundles/swiftmailer/library/classes/Swift/Transport/Esmtp/AuthHandler.php:176 堆栈跟踪: #0 /Applications/MAMP/htdocs/site/bundles/swiftmailer/library/classes/Swift/Transport/EsmtpTransport.php(307): Swift_Transport_Esmtp_AuthHandler->afterEhlo(Object(Swift_SmtpTransport)) #1 /Applications/MAMP/htdocs/site/bundles/swiftmailer/library/classes/Swift/Transport/AbstractSmtpTransport.php(124): Swift_Transport_EsmtpTransport->_doHeloCommand() #2 /Applications/MAMP/htdocs/site/bundles/swiftmailer/library/classes/Swift/Mailer.php(79): Swift_Transport_AbstractSmtpTransport->start() #3 /Applications/MAMP/htdocs/site/application/libraries/personal/mailer.php(55): Swift_Mailer->send(Object(Swift_Message)) #4 /Applications/MAMP/htdocs/site/application/config/error.php(91): Personal\Mai 在 /Applications/MAMP/htdocs/site/bundles/swiftmailer/library/classes/Swift/Transport/Esmtp/AuthHandler .php 在第 176 行Laravel 版本是 L3。
【问题讨论】:
-
假设 Laravel 将不得不做一些事情,基于异常未被捕获 - 即使 Laravel 自己做
catch,它也不会完成控制器中的代码。如果您在现场,您可以用try结束通话并记录,如果您在开发中,请重新throw? -
问题是,Laravel 已经处理了这个问题,但由于某种原因,不是因为这个 swift mailer 异常。我更愿意在 laravel 中找到根本原因并进行修改以确保捕获到异常
-
好的,+1。我对 Laravel 不熟悉,但如果你有任何自己的用于这个包的控制器代码,可能值得编辑它。或者这个包是否可以独立工作,路由和所有?
-
这是一个开源包。如果我能弄清楚 laravel 如何真正防止输出异常,那就太好了。然后我希望自己可以追踪问题
-
文档中有什么内容吗?我自己没有看过这些文档,所以不确定它们有多详尽。
标签: php laravel swiftmailer