我争论了一会儿题目,但我想这个解释了这个问题。 如果有人有更好的标题,随意编辑它。
Microsoft Exchange 2010和sendmail。
所有用户通过我们的Microsoft Exchange 2010服务器发送电子邮件,然后通过我们的互联网服务提供商smtp.our-isp.co.uk通过SMTP发送电子邮件。
所有应用程序通过sendmail发送自动电子邮件(发票等)到Linux服务器上,后者通过我们的互联网服务提供商smtp.our-isp.co.uk通过SMTP发送电子邮件。
组态:
# "Smart" relay host (may be null) DSsmtp.our-isp.co.uk
但是,如果用户发送电子邮件(Microsoft Exchange 2010 – > ISP SMTP),则收件人确定,但如果应用程序发送电子邮件(sendmail – > ISP SMTP),则根本没有收件人即它在到达他们自己的邮箱之前似乎被过滤了)。
这发生在特定的收件人,但我永远不能理解为什么,如果电子邮件是用相同的方法发送。
有人在这里有一些build议,可能是什么原因?
检查您的Linux服务器上的日志,确认ISP正在接受电子邮件交付。
如果是这样,那么请联系他们的日志在他们身边 – 即,我们不能帮助你。
如果不是,请修正Sendmail服务器的错误。
我同意mfinni,你需要进一步跟踪消息,以确定失败点。
首先假定您没有收到从未到达目的地的电子邮件中的任何types的NDR(未送达报告)是否正确?
检查你的Linux服务器上的maillog,看看它是否显示通信错误。 这总是试图确定是否是您的服务器configuration导致问题,或从接收服务器返回的东西的第一步。 另外,您可以手动testing从您的Linux服务器到smtp中继服务器的smtp以validation正确的通信。 示例手动smtp会话(<表示来自服务器的响应)
telnet smtp.our-isp.co.uk 25
<220服务器问候语将在这里看到
ehlo服务器名称
取决于可用的选项,<250可能会接收多个250行
mail:sendinguser @ domain
<250确定
收件人:域名
<250确定
数据
发件人:域名
收件人@域名
主题:无论你想要什么科目电子邮件的正文在这里,键入你的心的内容。
。
假设服务器接受了这个消息,你应该得到一个确认types的回复(比如“排队等待”等)。
如果这一切都成功了,那么这个消息可能会在ISP上挂起,或者被你的ISP悄悄丢弃(你的linux服务器IPconfiguration为允许通过你的ISP进行中继?)还是被收件人站点拒绝等,等等
您需要尝试缩小电子邮件的范围,然后尝试获取帮助,以检查您无法访问的其他服务器的日志(这通常是追踪电子邮件的有趣部分)。
我想这可能与某种垃圾邮件保护机制有关。
你有域名上的SPF或DKIM enabeld?
检查Linux上的SPFlogging:
$ dig +short example.com txt
你还应该看看你的sendmail日志。 通常是/var/log/maillog :
less /var/log/maillog
最后,在sendmail框中,你可以尝试telnet到你的ISP的SMTP服务器,看看你得到了什么样的回应。 一个例子:
$ telnet.exe smtp.example.com 25 Trying 192.168.1.1... Connected to smtp.example.com (192.168.1.1). Escape character is '^]'. 220 smtp.example.com ESMTP service ready > EHLO me.example.com 250 smtp.example.com Hello > MAIL FROM: [email protected] 250 ok > MAIL TO: [email protected] 250 ok > DATA 354 Start mail input; end with . > From: [email protected] > To: [email protected] > Subject: Test message now > > Test message. > . 250 2.6.0 queued mail for delivery > quit
电子邮件可能非常复杂。 ISP可能会放弃该消息,但不会告诉您为什么。 如果所有这些缩小问题的步骤都失败了,那么最后的办法就是直接联系他们。