背景
我们使用 Google Apps 来处理带有我们域名的电子邮件example.com
:
[ec2-user@example ~]$ dig MX example.com
…
;; ANSWER SECTION:
example.com. 300 IN MX 1 aspmx.l.google.com.
example.com. 300 IN MX 5 alt1.aspmx.l.google.com.
example.com. 300 IN MX 5 alt2.aspmx.l.google.com.
example.com. 300 IN MX 10 aspmx2.googlemail.com.
example.com. 300 IN MX 10 aspmx3.googlemail.com.
…
在同一个域中,我们运行了一个 EC2 实例,它使用 Amazon Linux AMI(基于 Centos)。sendmail
对于非 example.com 地址,它工作正常。但是,对于 example.com 地址,它会尝试在本地发送邮件,这对于仅存在于 Google Apps 上的用户来说会失败。有趣的是,尽管它
local-host-names
是空的,但它还是如此。
问题
为了避免本地投递尝试,我们可以设置sendmail
让所有电子邮件都通过 Google 的 SMTP 服务器发送(需要身份验证)吗?这是个好主意吗?或者有更好的解决方案吗?
附加信息
root
另外,配置服务器以将电子邮件发送到本地地址和ec2-user
Google Apps 用户也 很有趣[email protected]
。我想,我们会为此使用邮件别名。完整合格域名 (FQDN):
[ec2-user@example ~]$ hostname --fqdn example.com
当然,实际的服务器名称是不是
example.com
。这是另一个.com
域。根据@AndrzejA.Filip 的要求:
[ec2-user@example ~]$ echo '$j' | sendmail -bt ADDRESS TEST MODE (ruleset 3 NOT automatically invoked) Enter <ruleset> <address> > example.com > [ec2-user@example ~]$
答案1
您将服务器命名为example.com
,即裸域名。因此,许多程序(包括 sendmail)都会相信您说的话,并认为本地服务器确实一切与该域名相关。
要解决此问题,请重命名主机。出于这个原因以及其他各种原因,任何服务器都不应以仅有的其裸域名。