1、配置MX记录
配置MX记录是为了别人给你发信时,能通过DNS查找MX记录,找到你的邮件接收服务器。即MX记录是你的邮件接收服务器,收信时用到的。
如果邮箱接收服务器有多条公网链路,可以配置多个MX记录,让每个MX记录对应一个公网IP,以提高可用性。别人给你发邮件时,按优先级从高到低尝试连接,直到连接成功为止。
主机名 | 记录类型 | 值 | 优先级 |
---|---|---|---|
mx | mx1.abc.com | 5 | |
mx | mx2.abc.com | 10 | |
mx | mx3.abc.com | 15 | |
mx1 | a | 1.1.1.1 | |
mx2 | a | 2.2.2.1 | |
mx3 | a | 3.3.3.1 |
2、配置SMTP服务器的HELO主机名
这里很重要,HELO主机名要与后面的A记录、反向域名解析,保持一致。
HELO主机名配置为:smtp.abc.com
3、配置邮件发送服务器A记录
如果STMP服务器有多个出口链路,每个链路又有多个公网IP。则对于其中某条链路,要采取技术手段使SMTP服务器固定走一个IP,即保证SMTP服务器总是从指定的3个公网IP之一出去。
配置SMTP服务器的HELO域名:
smtp.abc.com
在域名服务商处配置SMTP服务器的A记录:
主机名 | 记录类型 | 值 | 优先级 |
---|---|---|---|
smtp | a | 1.1.1.2 | |
smtp | a | 2.2.2.2 | |
smtp | a | 3.3.3.2 |
4、配置邮件发送服务器的反向域名解析
邮件接收服务器为了反垃圾邮件,会对收到的邮件进行IP反向域名解析,IP反向解析到一个域名,再通过DNS查找这个域名的A记录对应IP地址是否与这个IP一致。如果不一致,就认为是垃圾邮件。
所以,必须让运营商为你的SMTP的出口IP配置反向域名解析,让这三家的运营商在各家的域名服务器上,对这三个IP做反向域名解析。
A运营商:将1.1.1.2 反向解析到smtp.abc.com
B运营商:将2.2.2.2 反向解析到smtp.abc.com
C运营商:将2.3.3.3 反向解析到 smtp.abc.com
最好,每个运营商将三个IP的反向域名解析都做上,避免万一SMTP服务器使用的A运营商的公网IP发出的信,别人使用的是B运营商的链路,查不到A运营商IP的反向域名解析。
配置SPF记录
主机名 | 记录类型 | 值 | 优先级 |
---|---|---|---|
TXT | v=spf1 a mx -all |
5、配置DKIM
DomainKeys Identified Mail 域名密钥识别邮件标准,发送邮件时,发送方用私钥来加密邮件标头。收邮件时,对方从DNS记录找到公钥以解密收到的邮件的标头,并验证邮件是否确定来自你的网域并且中途未经更改。
主机名 | 记录类型 | 值 | 优先级 |
---|---|---|---|
._domainkey | TXT | k=rsa;p=公钥内容 |
6、配置DMARC
它在邮件收发双之间建立起一个数据反馈机制。
如:告知收件方,拒绝伪造邮件,并将一段时间 的汇总报告发送到你的邮箱。
注意事项
CNAME会与同名的MX记录冲突,尤其注意裸域的情况,不容易发现这个问题。
域名的裸域可以设置多个解析记录,如MX、CNAME、TXT,其CNAME会与MX记录冲突。
以域名aabb.com为例,想实现在浏览器输入aabb.com时,自动跳转为www.aabb.com。这时,一定不要在DNS服务器上把aabb.com的CNAME重定向到www.aabb.com。因为这样的话,aabb.com的MX记录就失效了,会导致邮箱服务器收不到邮件(发邮件不受影响)。
原因:CNAME的优先级高于MX记录。别人发信,都发到了CNAME指定的www.aabb.com主机上了,而不是mx记录指定的邮件接收服务器上。
解决办法:DNS服务器上,把aabb.com A记录 指到www.aabb.com的主机IP。然后,内网架设nginx服务器,nginx配置跳转功能,如下 :
server {
listen 80;
server_name aabb.com;
if ($host ~* "^aabb.com$"){
rewrite ^(.*)$ http://www.aabb.com permanent;
break;
}
}