我编写了一些软件,用于操作俱乐部的非商业联系人列表,服务器向整个俱乐部发送管理邮件。这些电子邮件在 Yahoo、gmail 和 AOL 上都能正常接收,但在 hotmail 和 outlook 上却被悄悄丢弃。它们不会进入收件人的垃圾邮件文件夹,也不会被退回 - 它们实际上只是被丢弃了。
我花了好几个小时,但很快就一无所获。关于如何进行以及下一步该看什么,有什么建议吗?到目前为止,我知道的是:
- 电子邮件通过 SPF
- 电子邮件通过 DKIM
- 发送机器的主机名为
griffon.foo.org
,最终Return-Path
在以下标头中显示为 (可能 sendmail 将信封发件人设置为主机名)。原始 IP 被标识为1.2.3.4
,DNS PTR 查找1.2.3.4
返回griffon.foo.org
- 没有 的 A 记录
griffon.foo.org
,并且 的 A 记录foo.org
返回2.3.4.5
,而不是1.2.3.4
。这是问题吗? From
电子邮件正文标题与Return-Path
:之间存在轻微不匹配,From
一般来说,[email protected]
这是一台新服务器,偶尔会发送少量邮件,我保证没有人会将收到的邮件标记为垃圾邮件。mxtoolbox.com 没有出现
1.2.3.4
在任何黑名单中,并且只出现2.3.4.5
在 88 个列表中的一个(两个都在同一台机器上)Microsoft 服务器接受来自 sendmail 的电子邮件,并响应说这些邮件已排队等待发送。然后就直接忽略它们。
因此看起来可能是 (4),但由于复杂的原因,的 MX 记录foo.org
必须指向2.3.4.5
。有什么想法吗?我在下面附上了一组在 Yahoo 收到的标头。谢谢。
From [email protected] Wed Mar 25 17:28:23 2015
X-Apparently-To: [email protected]; Wed, 25 Mar 2015 17:28:32 +0000
Return-Path: <[email protected]>
Received-SPF: pass (domain of griffon.foo.org designates 1.2.3.4 as permitted sender)
X-YMailISG: <CUT>
X-Originating-IP: [1.2.3.4]
Authentication-Results: mta1045.mail.ir2.yahoo.com from=foo.org; domainkeys=neutral (no sig); from=foo.org; dkim=pass (ok)
Received: from 127.0.0.1 (EHLO griffon.bar.com) (1.2.3.4)
by mta1045.mail.ir2.yahoo.com with SMTPS; Wed, 25 Mar 2015 17:28:32 +0000
Received: from griffon.foo.org (localhost.localdomain [127.0.0.1])
by griffon.bar.com (8.13.8/8.13.8) with ESMTP id t2PHSNVN016920;
Wed, 25 Mar 2015 17:28:24 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=foo.org;
s=default; t=1427304504;
bh=0TWfPqbvd2nyKtZkN+npokT1bvLtCD0MomG/Bd1zU8g=;
h=Date:To:From:Subject;
b=ZcSVHGuzxcBk8He2hzjT6t8gl9hT0cxUsGf7vNcsnF8S+OfNmZ+XuE240+v7JDNe+
IArMT87aIuLNIp8A1CMOelWvEm7KKdYWKoCy/CDfbe4mcEfu2kWNteai4/5yExPewv
gFV6OOYAv7uKYd44UjMhuWCZ8qqxD2WZROUeoN2E=
Received: (from me@localhost)
by griffon.foo.org (8.13.8/8.13.8/Submit) id t2PHSNSu016919;
Wed, 25 Mar 2015 17:28:23 GMT
Date: Wed, 25 Mar 2015 17:28:23 GMT
Message-Id: <[email protected]>
To: [email protected], [email protected], [email protected],
[email protected], [email protected]
From: [email protected]
Subject: Test all (31)
Content-Length: 14
答案1
MX
我通过为 的域添加一条新的高成本记录来解决这个问题1.2.3.4
,该记录指向 的邮件服务器2.3.4.5
。这确保了反向 DNS 与正向 DNS 匹配。这基本上是一个解决下面 sendmail 问题的快速解决方案。
在此过程中,我确实发现了一些有关 Hotmail 和 Outlook 的有用信息,以及导致邮件被丢弃的原因。就我而言,根本问题与 sendmail 如何识别自身有关,但这可能对其他通过这种方式的人有用。请注意,DKIM 无关紧要(即使没有 DKIM,您也可以投递并通过垃圾邮件测试),而且我不必向 Microsoft 注册。
1-sendmail 将 SMTP‘MAIL FROM’设置为当前主机名的用户;即。[电子邮件保护](这就是您在 中看到的Return-Path
)
2 - hotmail 和 outlook 将对连接的 IP 地址进行反向/PTR 查找,如果邮件没有返回域名,则会默默地转储该MAIL FROM
邮件
3 - hotmail/outlook 随后将在最后一个“已接收”标头中指定的“发件人”服务器上进行 MX 查找。如果该服务器与域名不匹配MAIL FROM
,则电子邮件将被丢弃
似乎就是这样。 (3) 导致了我的问题。 sendmail 使用gethostbyname
来设置“发件人”名称,尽管它使用当前主机名来设置MAIL FROM
。我本来希望gethostbyname
只是进行PTR
查找并得到正确的答案,但它返回了一个旧的 FQDN。不知道为什么 - 可能是缓存问题 - 但新的 MX 记录暂时解决了这个问题。