PHPMailer:设置自定义标题以在退回电子邮件中标识它

时间:2017-05-04 15:36:02

标签: php email phpmailer bounce

我正在使用PHPMailer发送电子邮件。当电子邮件被退回时,会转到如下帐户:account_bounces@domain.com

在我管理此帐户的电子邮件客户端(account_bounces@domain.com)中,我可以选择添加过滤器,以便根据“主题”等字段的比较将电子邮件重定向到任何其他电子邮件帐户, “来自”,“来”等。那很好。

问题是,退回的电子邮件丢失了我使用PHPMailer设置的所有标题/主题...因为服务器按照以下内容始终

  • 主题:未送达邮件已退回发件人
  • 来自:MAILER-DAEMON@llsd409-a04.servidoresdns.net
  • 收件人:account_bounces@domain.com
  • 日期:今天......:mm

所以我没有用于添加过滤器的引导标记。

那么,有没有办法在PHPMailer中设置一个标记(如自定义标题等等),在退回的电子邮件中剩余?例如,有这样的事情:

  • 主题:未发送邮件返回发件人(bounce_redirect)

因此主题(或任何地方)中的“bounce_redirect”一词表示我的电子邮件客户端必须重定向此电子邮件。

提前致谢。

1 个答案:

答案 0 :(得分:2)

不幸的是,您无法在标题中强制执行此问题;唯一的方法是使用VERP addressing,这是唯一可以保证它保留有关消息的信息以及最初发送给它的地址的方法。 MS Exchange发送退回邮件是很常见的,这些邮件根本没有提到邮件发送到的原始地址,因此VERP是唯一的解决方案。

对于您的示例,典型的VERP地址为:

account_bounces-user=domain.com@domain.com

您的邮件服务器将设置为发现account_bounces前缀并将其删除,并将=转换为本地部分中的@以提取原始地址。

在PHPMailer中,您可以将其设置为Sender属性,例如:

$mail->Sender = 'account_bounces-user=domain.com@domain.com';

这将用作SMTP信封发件人,并转换为Return-Path 接收服务器的标头,因此将在消息被退回时用作To地址。

您可以更进一步,并在Sender地址中嵌入可用于识别邮件列表,特定邮件等的其他信息。