Sendmail : 忽略本地传送

Der*_*gan 6 ubuntu smtp sendmail

我有一个带有 Sendmail 的 Ubuntu 网络服务器作为我的 MTA

目前,当我在我的网络服务器域之外发送电子邮件时,例如 example.com 到 gmail 或 example.com 域之外的任何其他电子邮件,它工作得很好。我不希望我的 sendmail 守护进程将 example.com 识别为本地地址,我希望它像发送任何其他电子邮件一样发送到 example.com。

如果我将使用网络服务器上的本地用户为 example.com 收集这些电子邮件,则永远不会出现这种情况。

那么如何禁用本地交付?

use*_*ksa 3

您可以通过从 /etc/hosts 文件中删除域名来做到这一点。您需要将 senmail 配置为在发送电子邮件时使用您的域名 (example.com),而不是 localhost。

编辑/etc/mail/sendmail.mc 添加以下内容:

     MASQUERADE_AS(example.com)dnl
     FEATURE(masquerade_envelope)dnl
     FEATURE(masquerade_entire_domain)dnl
     MASQUERADE_DOMAIN(example.com)dnl
Run Code Online (Sandbox Code Playgroud)

前:

   MAILER(smtp)dnl
   MAILER(procmail)dnl
   dnl MAILER(cyrusv2)dnl
Run Code Online (Sandbox Code Playgroud)

输入 m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 然后运行/sbin/service sendmail restart

在进行任何更改之前备份您编辑的所有内容!

这个解决方案对我来说效果很好!

  • 由于服务器的完全限定域名与邮件目标的 FQDN 完全匹配,需要注意的一件事是,一旦从主机中删除条目,依赖于 example.com 的应用程序就会解析为 localhost,因为对 example.com 的 A 记录查找将开始从 DNS 返回地址。 (2认同)