gpt4 book ai didi

symfony - 使用 Symfony2 和 Swiftmailer,如何监听实际发送假脱机电子邮件时引发的异常?

转载 作者:行者123 更新时间:2023-12-02 03:43:03 25 4
gpt4 key购买 nike

我正在使用 Swiftmailer 和 Symfony 发送电子邮件。我的配置设置为假脱机电子邮件,并且我使用第三方 SMTP 服务器 (MailJet)。一切都很好。 但是如果我为 Swiftmailer 提供了错误的 SMTP 服务器密码,它就会默默地失败。

当我关闭假脱机以便立即发送时,我看到 Swiftmailer 抛出 TransportException。然而,当它被假脱机时,这个异常会在 Symfony 的 kernel.terminate 事件期间抛出,因此它会被忽略。 Symfony 或 nginx 的日志中都没有任何内容,所以我实际上不知道是否抛出异常。

那么,如果在 kernel.terminate 事件期间抛出连接到 SMTP 服务器的失败,我该如何检测,以便将其记录在 Monolog 中?

最佳答案

您应该看看Swiftmailer plugins 。有一堆来了included with swift .

也许是 logger插件或 reporter插件对你来说足够了。

如果没有,您可以编写自己的插件/事件监听器。您可以看一下记录器插件是如何工作的,它通过实现transport exception listener来监听异常。 .

类似这样的事情:

class CustomPlugin implements Swift_Events_TransportExceptionListener
{
public function exceptionThrown(Swift_Events_TransportExceptionEvent $evt)
{
$e = $evt->getException();
// do something ...
}
}

然后你可以像这样注册你的插件:

$mailer->registerPlugin(new CustomPlugin());

关于symfony - 使用 Symfony2 和 Swiftmailer,如何监听实际发送假脱机电子邮件时引发的异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21171080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com