如何追踪消失的电子邮件?

我有一个由CMS生成的电子邮件,发送给不同主机上的两个人。 主持人A总是收到电子邮件。 第二,在主机B,从来没有。

CMS位于主机A的服务器上。两个人可以相互发送和接收电子邮件,而不会出现任何问题。 他检查了他的垃圾邮件filter,他们不在那里。 我testing了发送电子邮件到其他两个主机没有问题。

“发件人”字段有问题,但是我解决了这个问题,但他仍然没有收到邮件。

开始追踪主机B上的人为什么永远不会收到CMS生成的电子邮件的最佳方式是什么?

电子邮件被阻止或被拒绝的原因有很多。 不过,电子邮件的devise方式应该不会消失。 应将其发送到邮箱,排队或退回发件人。 主机A和主机B MTA日志都应显示尝试的传递和尝试的结果。 我假设你可能没有访问主机b MTA日志。 所以你需要弄清楚如何从你身边来解决这个问题。

Web应用程序可能有点棘手,虽然他/她/他们中的一些人发送电子邮件使用一个简单的smtp应用程序或图书馆,盲目地试图通过尽力而为的方式发送电子邮件。 这些并不总是有队列来处理交付问题。 像灰色列表一样简单的事情可能导致这些交付失败。

最糟糕的是,您可以做一个数据包捕获,看看主机A和主机B之间的对话是什么样子。SMTP以明文forms发送,因此WireShark可以轻松读取服务器之间的交换。

如果您有更多关于CMS如何尝试发送电子邮件的信息,以及使用某人的MTA / SMTP应用程序,您可能会指向您应该查看的日志文件。 但是Linux /var/log/mail.log是一个很好的开始。

你不会从数据包捕获中学到任何东西,除非你有自己写的需要debugging的MTA。

这个问题有可能与下游主机有关。 你有什么日志可以访问? 尝试查看CMS系统上的MTA的maillog以及用于SMTP中继的任何可访问的辅助MTA系统。 你得到一个250 OK状态的邮件发送到远程主机B? 如果是这样,你已经成功地传递了消息。 如果没有,我们需要更详细的日志中的错误,告诉你更多。

问题可能是下一跳不喜欢你的电子邮件。 它可能有错误的头文件,乱码的MIME编码等等,它们会在没有反弹的情况下触发拒绝,因为如果电子邮件没有遵循相关的RFC来发送电子邮件格式,那么它会被认为是恶意的。

如果您在您的terminal上获得了“250 OK发送”types的状态,则唯一可以做的事情是让主机B的客户与服务提供商,ISP或IT部门通话,询问他们的电子邮件发生了什么情况,为什么。 只有远程站点的日志会告诉他们没有弹回电子邮件的故事。

您是通过电子邮件服务器还是SMTP服务发送邮件? 从应用程序(如CMS)发送电子邮件时,通常会select发送电子邮件

  1. networking上的电子邮件服务器(Exchange,其他)
  2. 一个SMTP服务(IIS SMTP,其他)

这是抓住。 如果应用程序(您的CMS)位于与电子邮件服务器相同的networking中,则这是首选,因为电子邮件服务器是该域的指定后台。 另一方面,如果应用程序无法通过邮件服务器访问中继电子邮件,并使用SMTP服务,请注意以下事项

如果SMTP将直接发送给外部用户,那么你需要确保从任何黑名单中清除IP(公共),确保你有正确的PTRlogging被其他邮件服务器设置为反向DNS,为了天堂,为了避免中断。

在你的情况下,如果HOST A上的人与CMS在同一个networking上,那么他/她将会收到邮件。 如果HOST B位于单独的networking上,则HOST B邮件服务器可能正在进行反向查找,无法确定SMTP是否是合法的邮件服务器。 您还需要有适当的MX设置。

如果两个用户在同一个networking上,则可能是发件人(来自地址如[email protected])不允许发送给该用户。 你不能让你的电子邮件pipe理员在电子邮件上留下痕迹吗? (这是如果你是从邮件服务器发送。