我们使用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对non-ex.com地址工作正常。 但是,example.com地址会尝试在本地投递邮件,这对仅存在于Google Apps上的用户无效。 有趣的是,尽pipelocal-host-names是空的。
为了避免本地交付,我们可以设置sendmail以便通过Google的SMTP服务器发送所有电子邮件(需要authentication)? 这是个好主意吗? 还是有更好的解决scheme?
此外,将服务器configuration为将电子邮件发送到本地地址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 ~]$
您将您的服务器example.com命名为裸域名。 因此,许多程序(包括sendmail)都会引用你的意思,并认为本地服务器执行与该域名有关的所有事情 。
要解决该问题,请重命名主机。 由于这个原因以及其他原因,任何服务器都不能只以裸域名命名。