【发布时间】:2013-09-08 01:01:16
【问题描述】:
我最近将我的交易电子邮件发送到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 服务器?
我本来希望在Return-Path 标头中看到以@some-mailgun-server.com 结尾的电子邮件地址!
我之前一直在使用 Amazon SES,他们的 Return-Path 标头以 amazonses.com 结尾
我询问了 mailgun 支持并得到了以下回复:
Nick:你的设置是正确的,Mailgun 仍然会自动处理 即使您的 mx 记录指向其他地方,也会出现反弹
他们只是向我保证一切都很好,但没有给我任何解释(这没关系,因为他们的工作不是教我不知道的东西,而是提供可靠的电子邮件服务......)
所以我希望有人能给我解释一下。
我希望这一点很清楚,如果没有,请询问,我会尽力澄清我的问题。
编辑:
我的一个理论是,退回的电子邮件确实被发送到谷歌邮件服务器并被丢弃。但是,这是多余的,因为在此过程中(当它打开与目标邮件服务器的 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 地址的域匹配,它可能会提高交付能力。
但这只是一个理论。这也意味着能够接收退回邮件的邮箱必须位于用于发送的同一台服务器上。
换句话说,除了发送邮件的实际服务器之外,不可能有一个邮箱来接收托管在其他地方的退回电子邮件地址。但这听起来对我来说也很奇怪......
希望有人能赐教。
【问题讨论】:
-
关于这个问题的近距离投票,原因是:
This question does not appear to be about programming within the scope defined in the help center.-- 请详细说明。恕我直言,这个问题是关于正确实现 RFC 2821、3834 和 4409 中定义的协议。如果没有实际的源代码,它还能获得多少编程? -
我的猜测是弹跳服务器错误地使用了
from地址。您有退回电子邮件的原始标题吗? -
嘿@pekka,我终于发现了这一切背后的原因。您的假设是有效的,但事实证明情况有所不同。我会马上写下这个问题的答案。
标签: email spam email-headers email-bounces verp