对 Swiftmailer 的反弹支持
Posted
技术标签:
【中文标题】对 Swiftmailer 的反弹支持【英文标题】:Bounce Support for Swiftmailer 【发布时间】:2011-08-24 05:39:11 【问题描述】:我在这里看到了针对 Swiftmailer 处理退回邮件的建议,但我在文档中没有看到对此的支持。我错过了什么吗?在我看来,phpMailer-BHM 是唯一可以开箱即用的具有此功能的选项。如果这不正确,请详细说明。
我之所以这么问是因为 Swiftmailer 看起来拥有最好的文档和支持,但我不想花时间重新发明***来创建一个类来解析和处理 NDR。
【问题讨论】:
【参考方案1】:Swiftmailer 更关心发送电子邮件(例如,从您的脚本到处理发送的 SMTP 服务器)。 Swiftmailer 没有接收电子邮件的能力,这就是退回邮件。
Swift 唯一一次可以收到退回邮件的情况是,它正在将电子邮件交给的 SMTP 服务器直接拒绝该电子邮件。否则,一旦它在 SMTP 服务器中排队,Swiftmailer 就完成了。
在现实世界中,Swiftmailer 是您在邮箱中传递一封信。如果邮箱被焊死,Swiftmailer 会告诉你,否则信会进入邮箱,然后 Swift 就完成了。
退信是指邮递员隔天前来投递信封,信封上印有“退回发件人”字样。 Swift 与此无关,因为它不接收电子邮件,它只是将它们从你家带到邮箱。
【讨论】:
这就是我收集到的。所以两个优化选项是 PHPMailer-BMH 或 PHPList...【参考方案2】:设置 Return-Path:(退回)地址 Return-Path: 地址指定退回通知的发送位置,并使用 setReturnPath( ) 消息的方法。
您只能有一个返回路径:,并且不能包含个人姓名。
退回通知将发送到此地址:
$message->setReturnPath('bounces@address.tld');
【讨论】:
SwiftMailer 根本不应该设置“Return-Path”标头,这是由接收 SMTP 服务器设置为信封发件人的值(“MAIL FROM:” SMTP 命令)。另见:***.com/a/26765956 附加,设置 setReturnPath 不起作用,请参阅github.com/swiftmailer/swiftmailer/issues/949 - 尽管 swiftmailer 的文档是这样说的。 swiftmailer.symfony.com/docs/… 据我所知,它确实“有效”,只是可能没有很多人想要的结果。在发送邮件时设置“Return-Path”标头可能会导致该标头被 SMTP 服务器删除(请参阅postfix.org/cleanup.8.html)或在最终传递 SMTP 服务器正确添加该标头后重复 Return-Path 标头。跨度>以上是关于对 Swiftmailer 的反弹支持的主要内容,如果未能解决你的问题,请参考以下文章