SwiftMailer的文档说:
可以通过使用by-reference参数send()来获取被传输拒绝的地址列表。在Swift Mailer尝试将消息发送到给定的每个地址时,如果收件人被拒绝,它将被添加到数组中。
// Pass a variable name to the send() method if (!$mailer->send($message, $failures)) { echo "Failures:"; print_r($failures); }
但是,我没有找到确定失败原因的方法。例如。 send
返回0,$failures
充满电子邮件地址,但我想知道为什么发送失败/被拒绝。
我该怎么做?不可能吗快速浏览内部消息源表明,SwiftMailer catch
可以使用异常来填充$failedRecipients
,并且看来异常的消息并未保存在任何地方。我想念什么吗?
我认为不可能做到这一点。不幸的是,只能查看失败的电子邮件地址列表,而不是这些地址失败的原因。
来自关于GitHub(https://github.com/swiftmailer/swiftmailer/issues/891)的讨论:
\Swift_Transport_AbstractSmtpTransport::_doMailTransaction()
中的异常被静默吞下