我遇到了一个问题,发送给某些收件人的所有电子邮件都发送了,但从未到达,甚至不是垃圾邮件,也没有错误,而发送给其他人的电子邮件则正常。我被难住了,正在寻找方法来诊断发生了什么。
- 上周,我从 Outlook 2016 向客户发送了一些电子邮件。现在我发现他们从未收到过这些电子邮件。我尝试向他们域中的其他人发送电子邮件,似乎没有人收到我的电子邮件,但其他域中的其他人收到了
- 我检查了我的“已发送”文件夹,它们看起来与所有其他已发送邮件相同。我没有收到任何送达报告或类似信息,它们位于“已发送”文件夹中,而不是“发件箱”中。我还尝试在最近发送给这些人的电子邮件中抄送自己 - 他们肯定会发送。
- 我已与该客户核实,他们从未收到我的任何信息,甚至不在垃圾邮件文件夹中。我可以收到他们的电子邮件,但他们收不到我的任何邮件——甚至连我对他们电子邮件的回复都没有。
- 第一封电子邮件有两个小的(500kb)PDF 附件,但后续电子邮件也遭遇了同样的命运,没有附件。任何电子邮件中都没有图片或链接。它们是发给一到三个人的普通工作相关电子邮件,我过去曾通过同一个电子邮件地址和 Outlook 与他们有过电子邮件交流。他们也和我在同一个国家。
- 没有收到任何投递错误回复或类似信息。第一封这样的邮件是上周五早上 8:55 发送的,也就是说已经过去 5 天了,我和他们都没有收到任何回复。
- 他们给我发的电子邮件都正常收到 - 事实上,我给他们发的第一封失败的电子邮件是对他们自己电子邮件的回复。最近两周前,我也曾正常收到发往这个域名的电子邮件。
我尝试向该域名发送多种测试电子邮件,但均未成功:
- 简单写着“这是一封测试邮件”之类的无辜邮件永远不会到达
- 来自 Webmail 和我的 Android 邮件应用程序的电子邮件与来自 Outlook 的电子邮件到达方式不同(并且也没有提供送达报告 - 一切都默默失败)
- 使用手机 3G 发送的电子邮件与使用 WiFi 发送的电子邮件遭遇相同的命运
- 我也在同一个域名上创建了一个新的电子邮件帐户(例如
[email protected]
与我通常的一起使用[email protected]
),并且它遇到了完全相同的问题(使用网络邮件测试)。 - 为了测试我是否有某种混乱的 SMTP 设置阻止了退回送达回执,我发送了一封电子邮件到[电子邮件保护]推理说它可能不存在。我收到了一个完全正常的“邮件投递失败:将邮件退回给发件人”的退回邮件 - 所以我能够收到退回邮件,只是出于某种原因我没有从这个域收到退回邮件。
- 例如,从我的个人 Gmail 帐户向他们发送的电子邮件都可以正常接收(因此,我会一直使用它,直到这个问题得到解决)
这封电子邮件来自我自己的域名 - 我曾用同一个电子邮件地址和同一个 Outlook 向其他人发送电子邮件,他们收到邮件都很顺利。Gmail 偶尔会将它们标记为垃圾邮件,我正在调查此事,但其他客户端似乎没有问题。
除此之外,我看不出有什么可以继续下去的。我确信这里没有足够的信息来诊断我的问题,所以我并不是在寻求解决方案,而是诊断步骤我可以做, 例如:
- 我可以在 Outlook 中查看到任何“底层”内容吗,例如发送报告或日志?
- 我应该查看哪些类型的服务器或域相关日志?我的域已分配给 Centos VPS 上的 SMTP 服务器。
- 是否有任何类型的黑名单或安全干预是我应该了解并检查的,从而导致电子邮件甚至无法进入垃圾邮件文件夹?
我见过这个问题有些人收不到电子邮件,与之类似,但有两个区别:
- 他们使用群发邮件系统,我使用普通的 Outlook,每次只发一封电子邮件。
- 接受的答案指责灰名单- 但是,我的第一封丢失的电子邮件是上周五(五天前)的,显然灰名单会延迟电子邮件 15 分钟到“几天”。
正如泰森建议的那样,我尝试过http://mxtoolbox.com/但不幸的是,它没有给出任何线索(至少,我看不到任何线索)。如果我错过了什么,以下是结果:
黑名单检查
正在根据 95 个已知黑名单检查 XX.XX.XX.XX...
列出 0 次,其中 1 次超时
[列表末尾有很多绿色勾号:]
TIMEOUT IPrange RBL Project [response time:] 0
所以它不在任何已知的黑名单中。我不知道为什么 IPrange RBL 检查失败了,但我手动检查了http://iprange.net/rbl/lookup/而且我也没有被列入黑名单。
SMTP 检查:
因此连接时间有点慢(我不确定为什么,会调查这一点),但我不明白为什么这会导致已发送的邮件有时完全消失。
http://intodns.com还对我的所有域的 MX 检查给出稳定的绿色勾号。
我尝试浏览(Centos/Linux)服务器上的日志文件:
/var/log/maillog
- 这些都是空的。我相信这些是 sendmail 日志,而且我目前不使用 sendmail,所以这是有道理的。/var/log/exim/reject.log
充满了被拒绝的暴力破解尝试dovecot
。fail2ban
我已经检查了我的防火墙设置等,看看我是否可以阻止他们尝试,但我认为这与此无关/var/log/exim/main.log
还包含许多被拒绝的暴力破解尝试,但也包含一些实际发送的电子邮件的记录:
这是一封发送给同一域中的三个人的电子邮件,这三个人都发送失败了(我编辑了一些字母数字字符串,并用 TXT.LIKE.TH.IS 替换了 IP 地址):
2016-02-12 08:55:41 no host name found for IP address MY.PC'S.IP.ADR
2016-02-12 08:55:49 1aU9Vw-0004vq-EG <= [email protected] H=(MyPCName) [MY.PC'S.IP.ADR] P=esmtpa A=dovecot_login:[email protected] S=1443429 [email protected]
2016-02-12 08:55:51 1aU9Vw-0004vq-EG => [email protected] <[email protected]> R=dnslookup T=remote_smtp H=cluster5.us.messagelabs.com [US.IP.ADR.ESS] X=UNKNOWN:DHE-RSA-AES256-GCM-SHA384:256
2016-02-12 08:55:51 1aU9Vw-0004vq-EG -> [email protected] <[email protected]> R=dnslookup T=remote_smtp H=cluster5.us.messagelabs.com [US.IP.ADR.ESS] X=UNKNOWN:DHE-RSA-AES256-GCM-SHA384:256
2016-02-12 08:55:51 1aU9Vw-0004vq-EG -> [email protected] <[email protected]> R=dnslookup T=remote_smtp H=cluster5.us.messagelabs.com [US.IP.ADR.ESS] X=UNKNOWN:DHE-RSA-AES256-GCM-SHA384:256
2016-02-12 08:55:51 1aU9Vw-0004vq-EG Completed
这是发送给一个人的成功的电子邮件(已被收件人收到):
2016-02-12 08:58:20 no host name found for IP address MY.PC'S.IP.ADR
2016-02-12 08:58:23 1aU9YU-0004w0-IN <= [email protected] H=(MyPCName) [MY.PC'S.IP.ADR] P=esmtpa A=dovecot_login:[email protected] S=23133 [email protected]
2016-02-12 08:58:26 1aU9YU-0004w0-IN => [email protected] <[email protected]> R=dnslookup T=remote_smtp H=cluster4.eu.messagelabs.com [UK.IP.ADR.ESS] X=UNKNOWN:DHE-RSA-AES256-GCM-SHA384:256
2016-02-12 08:58:26 1aU9YU-0004w0-IN Completed
我看不出两者之间有什么显著差异。前后都只是暴力破解碎片和其他电子邮件。
我不知道cluster5.us.messagelabs.com
或的意义cluster4.eu.messagelabs.com
是什么,但关联的 IP 地址都是 MessageLabs 的 IP 地址。
谷歌搜索 messagelabs.com 后,结果显示这篇博客文章,这看起来很相关并且表明(巧合的是)我的两个客户都是 MessageLabs 的订户,但重要的区别在于:a)与作者不同,我甚至没有收到未送达收据,b)如果是 MessageLabs 阻止了我的电子邮件,我不明白为什么他们会为其中一个客户阻止它,而不为另一个客户阻止它。
答案1
电子邮件故障排除可分为“发件人”和“收件人”问题。由于您能够向其他人发送邮件,因此发送方可能工作正常。您需要调查收件人方以找出问题所在。
查看日志是一个很好的步骤,它可以告诉你你的邮件到达了哪里,没有到达哪里。正常的电子邮件流程如下:
您从电子邮件软件发送到您的服务器
您的服务器发送到他们的服务器
他们的服务器发送到他们的电子邮件客户端
在这种情况下,你可以从日志中看到他们的服务器似乎
cluster5.us.messagelabs.com
Messagelabs 是一项电子邮件过滤服务,目前归 Symantec 所有。此类邮件过滤服务用于删除所有垃圾邮件和垃圾电子邮件前邮件会被发送到客户端软件。这意味着被 messagelabs 拦截的任何邮件都不会出现在客户端软件的垃圾邮件文件夹中。它们会消失,收件人永远不会看到它们的任何踪迹。在极少数情况下,他们可能会收到一条消息,称“来自[电子邮件保护]已被阻止。请联系您的 IT 部门以解除阻止。”
这听起来与这里发生的事情非常相似。从技术上讲,您应该会收到来自 messagelabs 的退回响应,就像您发布的链接中的人一样,但这并不能保证。如果他们认为这是垃圾邮件,他们可能会默默地删除您的邮件。通常,messagelabs 会为其客户的 IT 部门提供一个界面,可以在该界面上发布被阻止的消息。您可以要求您在公司的联系人向他们的 IT 团队查询是否有任何来自您电子邮件地址的被阻止消息。如果您有其他联系方式,至少您可以这样做!
其他有用的常规故障排除步骤:如果您无权访问日志文件,您可以通过查找“MX 记录”来了解任何域的服务器应该是什么
电子邮件服务器会查找 MX 记录来确定应该将您的电子邮件发送到何处。
然后,您可以手动连接到 mx 记录中列出的服务器,以查看它是否接受电子邮件以及您可能会收到哪些错误消息。使用像 Putty 这样的 telnet 程序:http://www.putty.org/ 并通过端口 25 远程登录到电子邮件服务器。您需要的一些命令列示如下:http://www.yuki-onna.co.uk/email/smtp.html
现在您可以连接到他们的邮件服务器并使用您的电子邮件地址作为“发件人”地址发送电子邮件,然后查看服务器如何直接响应。返回的任何电子邮件错误代码都可以在 Google 或此处查找:http://www.serversmtp.com/en/smtp-error
一旦您检查可以连接到服务器,它可能会告诉您为什么您的电子邮件被拒绝为垃圾邮件或其他原因,但原因可能不容易破译。在这个阶段,我建议您要求 messagelabs 客户拨打他们的支持号码,并提供您从他们的服务器收到的错误代码(或缺少错误代码)。由于您不是 messagelabs 的客户,因此您无法记录问题或要求 messagelabs 检查其客户帐户的设置。他们的客户必须自己询问。对于任何其他邮件过滤提供商来说,情况都是类似的。
希望错误代码能指出某个特定问题,例如您的服务器被列入阻止列表或缺少 SPF 记录,您可以自行修复这些问题,因为与第三方邮件过滤提供商打交道从来都不是一件有趣的事。我上次遇到的类似问题花了三个多月才找到故障原因并由 messagelabs 修复。
我将参考 kubanczyk 的回答来了解有关 SPF 和 DKIM 设置的详细信息,因为他们似乎比我更了解!
祝你好运!
答案2
您的出站 SMTP 日志表明目的地接受了该邮件。如果目的地邮件服务器出于某种原因好心地发送了退回邮件,那么您只能得到这些。除了询问客户(他们可能不知道)电子邮件发生了什么之外,您几乎无能为力,只能猜测。您还可以查看从客户端收到的消息的传输标头。
这是一个产品数据表对于 MessageLabs 解决方案(查看第 2 页的控制操作)
因此,该客户的邮件系统正在使用企业邮件安全解决方案,该解决方案提供了潜在的复杂策略,根据以下常见因素来阻止、拒绝、修改、过滤、扫描、重定向等邮件:
- 传输标头(此邮件是否被其他产品扫描过?是否被标记为加密?是否已签名?我是否信任源邮件系统?)
- 收件人(谁可以给谁发送电子邮件?)
- 主题、附件限制(主题中是否有“V1AGArA”?它是否包含 .exe?)
- 文本中的关键词受到限制吗?
- 邮件内容是否已分类?(该邮件是否被标记为辱骂性内容?是否包含 PII?)
这个清单可以列很多。我并不完全了解 MessageLab 的产品,但我使用过类似的产品,大银行的合规、治理、风险和 IT 安全部门都很喜欢这款产品,因为它允许这些部门以极其精细的程度过滤、审计、归档、审查、分析、分类和阻止邮件。我们的许多客户在法律上都被要求做一些常见的事情,例如:
- 通过将邮件透明地重定向到公司法律团队进行审核和批准,隔离可能违反财务法规的入站和出站邮件。
- 根据消息的内容重写传入或传出消息的参与者。
- 阻止来自具体的根据内容或关键词的邮箱
- 根据文档分析编辑并重写邮件的部分内容
- 根据以下情况应用额外的限制和控制措施地区。一个例子是我的一个客户所遵守的 ITAR 法规。来自特定地理区域的所有电子邮件都需要应用额外的深度内容分析策略,并且大量邮件需要手动批准才能到达最终用户邮箱。
当然,由于企业电子邮件中可能发生任何事情,因此目标邮件服务器总是有可能直接丢弃您的邮件并伪造200 OK
或250 COMPLETED
响应您的中继。这种情况确实会发生……我知道有些客户配置了邮件中继,将邮件路由到中继black hole
以消除恶意路由循环。企业邮件总是很有趣 :)
答案3
更新:这个答案描述了一种获取任何电子邮件(电子邮件内容、标题和服务器设置)诊断报告的方法。虽然这对于改进我的服务器设置非常有用,但不幸的是,即使修复了这里提出的所有问题,我的电子邮件仍然无法发送。我把它留在这里,因为其他人可能比我更幸运。
我找到了几家免费的在线电子邮件测试服务。它们会生成一个一次性电子邮件地址,你向其发送电子邮件,然后点击链接,然后它会给出一份报告,说明各种已知垃圾邮件过滤器如何评估该特定电子邮件。
它们通常是为测试新闻通讯而设计的,但非常适合我的目的。
我不知道该尝试哪一个,但我尝试了第一个——https://www.mail-tester.com/- 给出了有用的结果。
我使用了一个虚假的[email protected]
电子邮件帐户,因为拥有一个免费服务来测试电子邮件帐户是否是垃圾邮件,然后将这些电子邮件帐户出售给垃圾邮件列表,这种商业模式太明显了……:-)
该报告为我提供了有用的线索。以下是他们的结论:
还不错。有些收件箱可能仍会拒绝你
5/10
以下是他们的诊断截图:
(“正文消息包含错误”并不像听起来那么糟糕,它只是指出没有取消订阅链接,因为它错误地假设我正在测试时事通讯)
这就是我所寻找的:在没有任何失败交付通知的情况下,尝试修复可操作的事情。
因此,我现在将调查为什么我的电子邮件地址指向主 VPS 主机名 vps.my-domain.com,而不是邮件服务器主机名 mail.my-domain.com,并且我将调查为什么 SPF 条目(几个月前设置并且 MX 工具说没有问题)没有完全传播。
这看起来像是我的特定问题的根源:服务器配置的一个怪癖,我想,一些配置会认为它无关紧要,而另一些配置会认为它可疑:
更新...
坏消息...我已经修复了 Mail Tester 报告中提出的所有问题(感兴趣的人可以参阅我关于HELO 地址问题和SPF 传播问题)。现在,我的邮件在 Mail Tester 上的评分为 10/10...
哇!太棒了,你可以发送
10/10
...但我的电子邮件仍然未收到被这个奇怪的域名所欺骗。我开始怀疑我一定是以某种方式被添加到了组织特定的黑名单中(也许有人错误地点击了“垃圾邮件”按钮而不是“回复”或“存档”......不确定这是否能解释这种情况?)。
答案4
邮件提供商通常会设置一些奇怪的规则,并自动删除与规则匹配的邮件。
我们遇到了这个问题:
邮件提供商根据街道地址删除了我们的邮件,因为另一家公司(发送垃圾邮件的公司)位于同一街道地址...
所以我会:
- 发送一封没有任何内容(也没有正常页脚)和附件的邮件到邮箱,邮箱不会收到您的邮件
=> 如果可以收到,您的一些正常内容将被标记为“坏”
在每种情况下,我都会向您的合作伙伴(没有收到您的邮件)询问提供商名称,然后拨打他们的热线。