Gmail不允许发件人设置返回路径值来接收反弹消息吗


Does Gmail not allow sender to set a return path value to receive bounce messages?

我正在使用Swift Mailer来检查弹出的消息。我为反弹消息创建了一个单独的帐户,但当我设置返回路径时,它不允许反弹消息发送到该帐户。这是正常的还是代码错误?

$verp = 'bounces-' . str_replace('@', '=', $row['ReplyTo']) . '@gmail.com';
$message = Swift_Message::newInstance()
  ->setSubject($row['Subject'])
  ->setFrom(array($row['ReplyTo'] => $row['FromName']))
  ->setReturnPath($verp)
  ->setBody($html, 'text/html')
  ->addPart($txt, 'text/plain');

我现在使用的是VERP,似乎是定位一个交付错误?但不是为了将消息发送到反弹邮件帐户?

是的,这很正常。当通过Gmail的SMTP服务器发送电子邮件时,它会强制返回路径为您发送的帐户。

您唯一的解决方案是搜索允许您设置返回路径的提供商。

这不是gmail问题,而是SMTP规范的要求,如RFC 5321第4.4节:中所定义

源自SMTP系统的邮件不应发送已包含"返回路径"标头字段的邮件。

它还说,虽然SMTP系统根本不应该检查邮件内容(即,它们不查看邮件头),但从其他上下文到SMTP的网关应该删除任何返回路径的邮件头。简而言之,如果您自己添加了一个返回路径头,那么您就做错了。

您在收到的邮件中看到的返回路径标头是由接收方创建的,而不是由发送方创建的,它源自用于传递邮件的SMTP MAIL FROM命令。此地址无需与消息中的From地址标头有任何共同之处,并指定在传递失败时应将消息发送到的位置,即您想要的VERP地址。

我不知道SwiftMailer,但在PHPMailer中,您可以通过设置Sender属性来设置SMTP信封发件人的值,接收方将在接收时将其转换为返回路径邮件头。