Sendmail 在本地传送,而不是在 MX 记录中传送到 MTA

Sendmail 在本地传送,而不是在 MX 记录中传送到 MTA

好的,我有一个名为 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

如果你使用后缀

  1. 检查你的配置:postconf | grep "^\(mydestination\|mydomain\|myhostname\)"
  2. 如果您mydestination包含已安装 Google Apps 的域:
  3. sudo vi /etc/postfix/main.cf并检查配置,然后保存。
  4. 检查配置(如步骤 1)并重新启动 postfix sudo service postfix restart(可选?)

相关内容