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

PHPMailer: Set custom header to identify it inside the bounce email

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

在我管理此帐户的电子邮件客户端 (account_bounces@domain.com) 中,我可以选择添加过滤器以将电子邮件重定向到任何其他电子邮件帐户,基于"Subject"、"From"、"To" 等字段的比较。不错。

问题是被退回的电子邮件丢失了我用 PHPMailer 设置的所有 headers/Subject... 因为它 ALWAYS 由服务器组成,如下所示:

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

那么,有什么方法可以在 PHPMailer 中设置一个标记(如自定义 header,等等...),使被退回的电子邮件中 ​​REMAINS?例如,像这样的东西:

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

提前致谢。

很遗憾,您无法在 header 秒内强制解决此问题;绕过它的唯一方法是使用 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 header 由接收服务器使用,因此当邮件被退回时将用作 RCPT TO 地址(退回目的地)。

您可以更进一步,在 Sender 地址中嵌入其他信息,这些信息可用于识别邮件列表、特定邮寄照片等。