我最近将我的交易电子邮件发送到Mailgun
到目前为止效果很好,但是我想知道返回路径标头。
考虑这封电子邮件(出于隐私目的,我删除了不相关的标题并替换了电子邮件/域)
Delivered-To: RECIEVER@gmail.com
Received: by 10.76.154.104 with SMTP id vn8csp478308oab;
Wed, 4 Sep 2013 05:04:44 -0700 (PDT)
X-Received: by 10.50.22.105 with SMTP id c9mr1537992igf.36.1378296283817;
Wed, 04 Sep 2013 05:04:43 -0700 (PDT)
Return-Path: <bounce+a801a1.c2b37-RECIEVER=gmail.com@my-website.com>
Received: from so254-63.mailgun.net (so254-63.mailgun.net. [198.61.254.63])
by mx.google.com with ESMTP id k5si1620852igx.55.1969.12.31.16.00.00;
Wed, 04 Sep 2013 05:04:43 -0700 (PDT)
Received-SPF: ...stripped...
Authentication-Results: ...stripped...
DKIM-Signature: ...stripped...
DomainKey-Signature: ...stripped...
Received: by luna.mailgun.net with HTTP; Wed, 04 Sep 2013 12:04:42 +0000
Mime-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Subject: ...stripped...
From: my-website <support@my-website.com>
To: RECIEVER@gmail.com
Message-Id: <20130904120442.1488.88532@my-website.com>
X-Mailgun-Sid: WyI5YmI1OSIsICJqb2Vob3BmK2VlZ2VpN2lkMm9pbW9vYm9vZmFpQGdtYWlsLmNvbSIsICJjMmIzNyJd
Date: Wed, 04 Sep 2013 12:04:43 +0000
Sender: support@my-website.com
Content-Transfer-Encoding: base64
...email body...
这是从 gmail 收件箱中的实际邮件显示的原始电子邮件。如您所见,Return-Path 标头包含一个以结尾的电子邮件地址@my-website.com
但我只为传出电子邮件(spf、domainkey 等)设置了 dns 记录。不适用于传入的电子邮件。意思是,我的 MX 记录仍然指向其他地方的邮件服务器(在我的情况下是谷歌应用程序)。
那么退回邮件怎么可能到达mailgun服务器呢?
我本来希望看到一个以标题结尾的电子邮件@some-mailgun-server.com
地址Return-Path
!
我以前一直在使用 Amazon SES,它们的Return-Path
标题以amazonses.com
我询问了 mailgun 支持并得到了以下回复:
尼克:您的设置是正确的,即使您的 mx 记录指向其他地方,Mailgun 仍会自动处理退回邮件
他们只是向我保证一切都很好,但没有给我任何解释(这没关系,因为他们的工作不是教我我不知道的东西,而是提供可靠的电子邮件服务......)
所以我希望有人能给我解释一下。
我希望这一点很清楚,如果没有,请询问,我会尽力澄清我的问题。
编辑:
我的一个理论是,退回的电子邮件确实被发送到谷歌邮件服务器并被丢弃。然而,这是多余的,因为在此过程中错误响应也会发送到发送邮件服务器(当它打开到目标邮件服务器的 tcp 连接时)。
为了测试这个理论,并且由于 Return-Path 电子邮件采用 的形式bounce+SOMETHING@my-website.com
,并且无论+
字符后面是什么,谷歌都会将所有电子邮件发送给它前面的用户,我继续bounce@my-domain.com
在谷歌应用程序上创建了该帐户。
我还尝试发送电子邮件至bounce+a801a1.c2b37-RECIEVER=gmail.com@my-website.com
。
它通过了我的收件箱。
现在我希望在我的收件箱中收到反弹流量。所以我向一个不存在的 hotmail 地址发送了一封电子邮件。我的谷歌应用收件箱没有收到电子邮件,mailgun 成功跟踪了退回邮件。
所以...看来它确实有效。我只是不明白为什么。
我的另一个理论是,退回电子邮件所发送到的邮件服务器永远不会使用其 MX 记录来解析。在这种情况下,总是选择交付服务器luna.mailgun.net
。以地址结尾的域Return-Path
只是服务器上邮箱的名称,但域与邮件实际投递的服务器无关。
那么这样做也是有意义的,因为如果域From
和Return-Path
地址匹配,它可能会提高可交付性。
然而,这只是一个理论。这也意味着能够接收退回邮件的邮箱必须位于用于发送的同一台服务器上。
换句话说,除了发送邮件的实际服务器之外,不可能有一个邮箱来接收托管在其他地方的退回电子邮件地址。但这对我来说听起来也很奇怪......
我希望有人能启发我。