我有一个 Web 服务器,由于它响应的是 而不是我的服务器的域名(我们将其称为 ),因此被列入了发送电子邮件的黑名单SMTP HELO
。localhost.localdomain
我example.com
能够通过从我的文件中删除HELO
来让服务器响应 。但是,现在每当我尝试向具有相同域名的地址发送电子邮件时,sendmail 都会尝试在本地传递邮件,而不是通过 SMTP 将其发送到我们的实际邮件服务器(托管在 Rackspace)。example.com
localhost.localdomain
/etc/hosts
我遵循了这里的建议:为什么 sendmail 接受本地主机名文件中不存在的主机名的邮件?然后跑了
echo '$=w' | sendmail -bt
并得到:
[mail]
[162.243.XX.XXX]
mail
[mail.example.com]
mail.example.com
localhost
[127.0.0.1]
example.com
据我所知,sendmail 将所有这些域视为本地域。我DontProbeInterfaces=True
在我的sendmail.cf
文件中设置。现在当我运行
sendmail -bt
$=w
我得到:
localhost
[127.0.0.1]
example.com
我也尝试过从example.com
中删除/etc/mail/local-host-names
,但 sendmail 仍然认为这example.com
是本地的。如何让 sendmail 停止尝试向example.com
电子邮件地址进行本地邮件投递?
编辑:
echo '$j' | sendmail -bt
生产
example.com
编辑:
我尝试将主机名从 更改example.com
为example
,但现在我的SMTP HELO
响应是localhost
,并且发送电子邮件需要几分钟。根据此:https://www.digitalocean.com/community/questions/sendmail-is-slow-to-send-mail sendmail
预计hostname
是 FQDN,但我被告知它应该绝不是 FQDN。它是哪一个?
这是我的mail.log
:
Jul 28 16:40:01 localhost sm-msp-queue[1679]: My unqualified host name (localhost) unknown; sleeping for retry
Jul 28 16:41:01 localhost sm-msp-queue[1679]: unable to qualify my own domain name (localhost) -- using short name
答案1
修复您的服务器的主机名。任何服务器都不应该有与裸域名相同的主机名;这只是执行此操作时发生的众多问题之一。
答案2
在您的情况下,Sendmail 会将自动配置的“此主机(电子邮件)名称”($j
)添加到本地电子邮件域列表($=w
)。Sendmail 使用 报告的名称hostname --fqdn
。
建议修复:
不要使用“命名域”作为主机名(如 Michael 回复中所建议的)
或者
将 sendmail 使用的名称更改为“此主机邮件名称”
答案3
看到@poige 的评论后我的理智恢复了:
删除sendmail
。安装postfix
。这里有一个很好的教程:https://www.digitalocean.com/community/tutorials/how-to-install-and-configure-postfix-as-a-send-only-smtp-server-on-ubuntu-14-04
然后从参数中编辑/etc/postfix/main.cf
并删除完全限定域名mydestination
。