我最近将我的交易电子邮件发送到了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
但我只为外发电子邮件设置了dns记录(spf,domainkey等)。 不是收到的电子邮件。这意味着,我的MX记录仍指向其他地方的邮件服务器(在我的情况下是谷歌应用程序)。
然后退回电子邮件到达mailgun服务器怎么可能?
我原本希望在@some-mailgun-server.com
标题中看到以Return-Path
结尾的电子邮件地址!
之前我一直在使用Amazon SES,并且在Return-Path
amazonses.com
标题结尾
我问邮件支持并得到了回复:
尼克:你的设置是正确的,Mailgun仍会自动处理 即使您的mx记录指向其他地方
,也会反弹
他们只是向我保证一切都很好,但没有给我任何解释(这是可以的,因为他们的工作不是教我不知道的东西,而是提供可靠的电子邮件服务......)
所以我希望有人可以向我解释一下。
我希望这一点很清楚,如果没有请问,我会尽力澄清我的问题。
编辑:
我的一个理论是,退回邮件确实被发送到谷歌邮件服务器,在那里它被删除。但是这是多余的,因为错误响应也会在此过程中发送到发送邮件服务器(当它打开到目标邮件服务器的tcp连接时)。
要测试此理论,并且由于Return-Path电子邮件采用bounce+SOMETHING@my-website.com
的形式,并且Google将所有电子邮件(无论+
字符后面的内容)发送给前面的用户它,我继续在谷歌应用程序上创建了帐户bounce@my-domain.com
。
我还尝试向bounce+a801a1.c2b37-RECIEVER=gmail.com@my-website.com
发送电子邮件。
它通过我的收件箱。
现在我希望收到我的收件箱中的退回流量。所以我发了一封电子邮件给一个不存在的hotmail地址。我没有在我的谷歌应用程序收件箱中收到电子邮件,而且邮件已经成功跟踪了反弹。
所以......似乎确实有效。我只是不明白为什么。
我的另一个理论是,弹出电子邮件的邮件服务器永远无法使用其MX记录解析。而是始终选择交付服务器,在这种情况下luna.mailgun.net
。
以Return-Path
地址结尾的域只是服务器上邮箱的名称,但该域与实际传递邮件的服务器无关。
然后,如果From
和Return-Path
地址的网址匹配,它可能会提高可传递性,这也是有意义的。
然而,这只是一个理论。这也意味着一个能够收到退回的邮箱,必须与用于发送的服务器相同。
换句话说,没有邮箱可以接收托管电子邮件地址,这些地址是在发送邮件的实际服务器之外的其他地方托管的。但这听起来也很奇怪......
我希望有人能够启发我。
答案 0 :(得分:6)
原来有不同种类的反弹。
当发生退回时,它们通常会返回到发送电子邮件的服务器,而不会遵循MX记录。
这就是为什么他们被送到邮件服务器并到达那里。
然而,也有所谓的“延迟退回”,使用域中的MX记录发送到声明为mailserver的服务器。
那些延迟反弹通常很难处理,并且有人认为他们违反了RFC。
然而,这些反弹是非常非常罕见的。这就是为什么mailgun不能处理它们的原因。他们在返回路径地址中使用客户端域的原因是他们可以将其分配给正确的帐户。他们只是这样编码......事实上,当我在我的谷歌应用程序邮件中设置我的邮箱反弹时,我收到了一个这样的延迟反弹。
正是这封电子邮件使得正确的调试成为可能,从而了解了这个问题。
总结一下:
是的,地址不正确。大多数跳出都没问题,因为服务器不使用MX记录发送它们,而是将它们直接发送到已启动连接的服务器。
然而,如果延迟反弹,有时也会发生,反弹确实会转到返回路径地址中指定的域的mx记录后面的服务器。
这些电子邮件未被正确识别为mailgun服务器的退回。