![Sendmail 在本地传送,而不是在 MX 记录中传送到 MTA](https://linux22.com/image/502010/Sendmail%20%E5%9C%A8%E6%9C%AC%E5%9C%B0%E4%BC%A0%E9%80%81%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E5%9C%A8%20MX%20%E8%AE%B0%E5%BD%95%E4%B8%AD%E4%BC%A0%E9%80%81%E5%88%B0%20MTA.png)
好的,我有一个名为 websrv1.mydomain.com 的盒子。它是运行 ubuntu、apache2、sendmail 等的 Web 服务器。
我的电子邮件外包给了第三方。因此,在我的 DNS 中,我将 MX 设置为 mx.thirdparty.net。我没有理由在我的 Web 服务器上接受传入邮件,每封电子邮件都应该发送给第三方。这可以正确接受从 Web 服务器发送邮件(即通过 cron 或控制台)。
因此,如果我从我的网络服务器发送电子邮件到[电子邮件保护],它就消失了。没有错误,dead.letter 中没有任何内容,什么都没有。我可以发送到任何其他地址,没有任何问题。如果我发送到[电子邮件保护]它是在当地交付的,很好。
1) 执行 nslookup 显示 mx 记录正确。2
) 从 sendmail -bt 运行 /mx mydomain.com 返回正确结果。3
) 运行 sendmail -bv[电子邮件保护]
返回:
sudo sendmail-bv[电子邮件保护] [电子邮件保护]... 可交付成果:邮件程序 esmtp、主机 mydomain.com、用户[电子邮件保护]
4)跑步3.0[电子邮件保护],返回:
3,0[电子邮件保护] canonify 输入:me@mydomain.com Canonify2 输入:我 Canonify2 返回:我 canonify 返回:我 解析输入:我 Parse0输入:我 Parse0 返回:我 Parse1输入:我 MailerToTriple 输入:我 MailerToTriple 返回:我 Parse1 返回:$# esmtp $@ mydomain . com . $: me 解析返回:$# esmtp $@ mydomain . com . $: me
所以我很困惑。Sendmail 似乎看到了 mx 记录,但是却没有使用它。
答案1
检查以确保 sendmail 未配置为处理本地域。如果它尝试在本地处理电子邮件,但邮件被退回,而退回的邮件又被退回,则可能会发生奇怪的消失行为。
一定要使用 sendmail 吗?我已经用 Postfix 替换了所有内容。在我看来,它更容易处理。
答案2
如果您的 sendmail.mc 中有一个 smarthost 行,它是否在括号中?
定义(SMART_HOST',
[smtp.thirdparty.net]')dnl
这将导致 sendmail 跳过 MX 记录查找并直接使用 A 记录。在这种情况下,这可能就是您想要的。
答案3
您查看过您的 maillog 日志文件吗?那里可能有一些信息可以帮助您解决问题。
您可以进行的另一个测试是以该计算机上的用户身份向您的 @domain.com 上的帐户发送电子邮件,然后通过查看您的 maillog 日志文件来查看该邮件是否确实由 sendmail 传送。
我没有可以访问的 ubuntu 服务器,但邮件日志文件应该是 /var/log/maillog
答案4
如果你使用后缀:
- 检查你的配置:
postconf | grep "^\(mydestination\|mydomain\|myhostname\)"
- 如果您
mydestination
包含已安装 Google Apps 的域: sudo vi /etc/postfix/main.cf
并检查配置,然后保存。- 检查配置(如步骤 1)并重新启动 postfix
sudo service postfix restart
(可选?)