Hotmail/Outlook 明显丢弃了有效的电子邮件。

我编写了一些软件,用于俱乐部的非商业联系人列表,服务器会向整个俱乐部发送管理员邮件。这些邮件在雅虎、Gmail和AOL上能够正常接收,但是在Hotmail和Outlook上却被悄无声息地丢弃了。它们不会出现在收件人的垃圾邮件文件夹中,也不会被退回 - 它们实际上只是被抛弃了。

我花了很多时间在这个问题上,但进展甚微。对于如何继续和下一步要查看的内容,有什么建议吗?目前我知道的情况有:

  1. 这些电子邮件通过了SPF验证。
  2. 这些电子邮件通过了DKIM验证。
  3. 发送机器的主机名是griffon.foo.org,并且这个主机名作为以下标头中的Return-Path(可能是sendmail将信封发件人设置为主机名)。起始IP被标识为1.2.3.4,对1.2.3.4进行DNS PTR查找返回griffon.foo.org
  4. griffon.foo.org没有A记录,而foo.org的A记录返回的是2.3.4.5,而不是1.2.3.4。这是问题所在吗?
  5. 电子邮件正文的From标头和Return-Path之间存在轻微不匹配:From一般为me@baz.foo.org
  6. 这是一个新服务器,偶尔发送低容量的邮件,并且我可以保证没有人将收到的邮件标记为垃圾邮件。mxtoolbox.com在任何黑名单上都没有显示出1.2.3.4,而在88个列表中有一个显示2.3.4.5(两者都在同一台机器上)。
  7. Microsoft服务器接受来自sendmail的电子邮件,并回复说它们已经排队等待传送。然后它只是忽略它们。
看起来可能是(4),但是由于复杂的原因,foo.org的MX记录必须指向2.3.4.5。有什么想法吗?我在下面附上了一组在Yahoo收到的头部信息。谢谢。
From me@foo.org Wed Mar 25 17:28:23 2015
X-Apparently-To: a.a@yahoo.co.uk; Wed, 25 Mar 2015 17:28:32 +0000
Return-Path: <me@griffon.foo.org>
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: <201503251728.t2PHSNSu016919@griffon.foo.org>
To: f.a@outlook.com, a.a@yahoo.co.uk, b.a@aol.co.uk,
        l.b@gmail.com, l.b@hotmail.com
From: me@foo.org
Subject: Test all (31)
Content-Length: 14

3如果你要混淆你的标头,请使用example.comexample.net等而不是编造域名。除非你真的拥有foo.org和bar.com,那么恭喜你拥有好的域名。 - Jenny D
1个回答

我通过为域名添加一个新的高成本MX记录来解决了这个问题,该记录指向邮件服务器2.3.4.5,以确保反向DNS与正向DNS匹配。这基本上是一个快速修复方法,用于解决下面所述的sendmail问题。 在此过程中,我发现了一些关于Hotmail和Outlook的有用信息,以及导致邮件丢失的原因。在我的情况下,根本问题与sendmail如何标识自己有关,但这可能对其他人也有用。请注意,DKIM是无关紧要的(您可以在没有DKIM的情况下成功发送和通过垃圾邮件测试),而且我不需要在Microsoft上注册。 1 - sendmail将SMTP的“MAIL FROM”设置为当前主机的用户;即me@griffon.foo.org(这是您在Return-Path中看到的内容)。 2 - 然后,hotmail和outlook会对连接的IP地址进行反向/PTR查找,并且如果未返回到“MAIL FROM”域名,则会悄悄地丢弃该邮件。 3 - hotmail/outlook将在最后一个“Received”头部中命名的“From”服务器上进行MX查找。如果这与MAIL FROM域不匹配,则会丢弃该电子邮件。 看起来就是这样了。(3)导致了我的问题。sendmail使用gethostbyname来设置“From”名称,尽管它使用当前主机名来设置MAIL FROM。我本以为gethostbyname只会进行PTR查找并得到正确的答案,但它返回了一个旧的FQDN。不知道为什么-可能是缓存问题-但新的MX记录暂时解决了这个问题。

请也接受您的答案。感谢您对似乎存在问题的详细描述,这里有许多关于这些特殊行为、忽视标准的邮件服务器的问题。 - sebix
2谢谢,但请注意这并不是一个关于如何发送邮件到Hotmail和Outlook的完整答案。反向/转发DNS测试和MX查询似乎是最重要的,但即使你通过了这些测试,并且在SPF和DKIM上也通过了,并且邮件内容完全无害,仍然有可能导致你的邮件被悄无声息地丢弃。我不得不请收件人将我加入白名单(这总是有效的),或者转到一个不认为自己拥有整个邮件系统的邮件提供商那里。 - EML
2这个回答中的第2点和第3点似乎声称Outlook不接受您在托管多个域名邮件的服务上托管电子邮件。一个发送服务器只能有一个PTR记录,但是一个代表多个域的服务器将需要为每个域使用不同的MAIL FROM域。您确定在MAIL FROM命令中提到的域名很重要(而不是HELO)吗?这基本上是信封发件人,在典型情况下应该与“From:”电子邮件标头匹配,也就是说,它将不同于服务器处理邮件的不同域。 - thomasrutter

  • 相关问题