假设我有一个具有多个专用IP地址和多个域的VPS:
domain-a.com是11.11.11.11 ,mx是mail.domain-a.com domain-b.com是22.22.22.22 ,mx是mail.domain-b.com domain-c.com是33.33.33.33 ,mx是mail.domain-c.com domain-a.com是主域,服务器的主机名是server.domain-a.com
一切似乎都没有问题,直到我发现使用Exim 4.72发送的SMTP电子邮件反弹,失败或被标记为许多域的垃圾邮件。 经过一些挖掘,我发现有不匹配:来自每个域的电子邮件, HELO是从server.domain-a.com 。
例如,我在发送给gmail的电子邮件的标题中看到了这一点:
Received: from server.domain-a.com (mail.domain-c.com. [33.33.33.33])
而像https://www.mail-tester.com/这样的邮件testing服务告诉我:
您的反向DNS与您的发送网域不匹配。
您的IP地址33.33.33.33与域mail.domain-c.com相关联。
尽pipe如此,你的消息似乎是从server.domain-a.com发送的。
您可能希望将您的指针(PTRtypes)DNSlogging和您的服务器的主机名更改为相同的值。
这是检查的testing值:
IP: 33.33.33.33 HELO: server.domain-a.com rDNS: mail.domain-c.com
但显然,我不能一次指向域a,b和c的server.domain-a.com ,无论如何,我不一定要domain-c.com通过domain-a.com发送 – 让我们假设他们是独立的企业,恰好在同一台服务器上托pipe。
我怎样才能configurationexim发送每个邮件从它自己的域,并从邮件服务器域HELO ,而不是服务器的主要主机名?
所以标题看起来像这样:
Received: from mail.domain-c.com (mail.domain-c.com. [33.33.33.33])
testing结果报告如下:
IP: 33.33.33.33 HELO: mail.domain-c.com rDNS: mail.domain-c.com
我发现IP地址的这个问题的解决scheme ,这就是我从不同的IP地址发送邮件,所以我确定必须有一个类似的域名解决scheme。
在我的研究中,我只能find这个解决scheme,但是它取决于cP *** l和W * M以及只存在于cP *** l中的文件/etc/mailhelo 。 这显然是可能的,但是这个解决scheme取决于一些幕后的gubbins烘焙到cP *** l,我不使用。
如果相关,操作系统是CentOS。
那么,这比预期容易。
我注意到我的exim设置文件( /etc/exim/exim.conf )包含这个注释掉的行:
#helo_data = $sender_address_domain
取消注释导致HELO /成为正确的域名,只是错过了mail. 字首。
所以对我有效的是:
(1)在remote_smtp:在我的系统上位于/etc/exim/exim.conf eximconfiguration文件中,添加以下行:
helo_data = "mail.${sender_address_domain}"
(2)重新启动exim(在我的系统上,这是service exim restart )
(3)就是这样
做这个改变之后,像Mail Tester这样的服务发现没有问题,我的邮件头的这一部分看起来很正常:
Received: from mail.domain-c.com (mail.domain-c.com. [33.33.33.33])
主机名仍然出现在电子邮件标题中; 我已经提出了一个单独的问题 。