我对问题标题争论了一段时间,但我认为这解释了这个问题。如果有人有更好的标题,请随意编辑它。
环境:
Microsoft Exchange 2010 和 sendmail。
问题
所有用户都通过我们的 Microsoft Exchange 2010 服务器发送电子邮件,该服务器又通过我们的互联网服务提供商通过 SMTP 发送电子邮件smtp.our-isp.co.uk
。
所有应用程序都通过 Linux 服务器上的 sendmail 发送自动电子邮件(发票等),然后通过我们的互联网服务提供商通过 SMTP 发送电子邮件smtp.our-isp.co.uk
。
配置:
# "Smart" relay host (may be null)
DSsmtp.our-isp.co.uk
但是,如果用户发送电子邮件(Microsoft Exchange 2010 -> ISP SMTP),它会顺利到达收件人,但是如果应用程序发送电子邮件(sendmail -> ISP SMTP),它根本无法到达收件人(即,似乎在到达收件人自己的邮箱之前就被过滤了)。
这种情况发生在特定的收件人身上,但如果电子邮件是以相同的方式发送的,我就无法理解为什么。
有人对可能的原因有什么建议吗?
答案1
检查 Linux 服务器上的日志,验证 ISP 是否接受该电子邮件进行传送。
如果是,请联系他们获取他们那边的日志 - 即我们无法帮助您。
如果不是,请修复 Sendmail 服务器的所有问题。
答案2
我同意 mfinni 的观点,您需要进一步跟踪消息以确定故障点。
第一个假设是您没有收到从未到达目的地的电子邮件的任何类型的 NDR(未送达报告),对吗?
检查 Linux 服务器上的邮件日志,看看它是否显示通信错误。这始终是尝试确定是服务器配置导致问题还是接收服务器返回了某些内容的第一步。此外,您可以手动测试从 Linux 服务器到 smtp 中继服务器的 smtp,以验证通信是否正常。手动 smtp 会话示例(< 表示来自服务器的响应)
telnet smtp.our-isp.co.uk 25
<220 服务器问候语将在此处显示
ehlo 服务器名称
<250 可能会收到多条 250 行,具体取决于可用选项
邮件发件人:sendinguser@domain
<250 还行
收件地址:收件人@域名
<250 还行
数据
- 下一部分不会产生任何反馈,因此您只需点击每一行,最后一行就是一行上的句点(请注意,电子邮件的主题和正文之间有一个空行)。
发件人:sendinguser@domain
收件人:recipient@domain
主题:任何您想要的主题
电子邮件正文可在此处输入,请输入您喜欢的内容
。
假设服务器接受了该消息,您应该收到 250 条回复,其中包含某种类型的确认(例如“排队等待传送”等)。
如果一切都成功,那么消息可能会在 ISP 处被挂断,或被您的 ISP 悄悄丢弃(您的 Linux 服务器 IP 是否配置为允许通过您的 ISP 中继?)或被收件人站点拒绝,等等。
您需要尝试缩小电子邮件到达的范围,然后尝试获取帮助,检查您无法访问的其他相关服务器的日志(这始终是追踪电子邮件最有趣的部分)。
答案3
我认为这可能与某种垃圾邮件防护机制有关。
您的域名是否启用了 SPF 或 DKIM?
要在 Linux 上检查 SPF 记录:
$ dig +short example.com txt
你还应该查看一下你的 sendmail 日志。它通常是这样的/var/log/maillog
:
less /var/log/maillog
最后,在发送邮箱上,您可以尝试远程登录到 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 可能会丢弃邮件而不向您说明原因。如果所有这些缩小问题范围的步骤都失败了,您最后的办法就是直接联系他们。