可能重复:
Swiftmailer 4 does not retrieve bounces as $failedRecipients
我正在使用SwiftMailer通过我的GMail帐户使用SMTP发送电子邮件。
我已经完成了所有设置,我可以毫无问题地发送电子邮件。
documentation表示如果没有成功发送消息,则send()
应返回0
并使用失败的电子邮件填充数组(我称之为$failures
)地址。
我看到的问题是,如果我发送电子邮件到不存在的地址(asdfasdf@thisdomaindoesnotexist1111.com
),我会收到GMail的回复:
Mail Delivery Subsystem mailer-daemon@googlemail.com
9:06 PM (6 minutes ago)
to me
Delivery to the following recipient failed permanently:
asdfasdf@thisdomaindoesnotexist1111.com
Technical details of permanent failure:
DNS Error: Domain name not found
----- Original message -----
但是,swiftmailer仍然返回1(成功发送1条消息),$failures
数组仍为空。
由于连接是使用SSL加密的,我不认为我可以用wireshark来嗅探和查看数据包。
我的预感是GMail的SMTP服务器在生成有关失败的电子邮件并将其发送到发送地址时返回成功。
这是对的吗?如果是这样,有没有办法在PHP中捕获失败?
答案 0 :(得分:0)
Swift只能告诉您SMTP服务器是否接受了要传递的邮件 - 无法检查邮件传递过程中稍后出现的错误。
在您的情况下,gmail的SMTP守护程序确实接受了该消息,但在尝试处理该消息时失败,这种情况只能通过这种方式通知您。
如果您想以编程方式检查这些内容,您可以编写一个IMAP客户端,登录到您的Gmail帐户并扫描它以查找类似的消息。虽然我不确定这是值得的。