如何让你服务器发出的邮件不被其它邮箱拒收

最近看着Tao的服务器cPanel用的如此欢畅,邮件账号一分钟就可以建立起来……但是却被巨硬邮箱列为垃圾邮件,这让他很尴尬……

进入邮件测试网站

https://www.mail-tester.com/

(大中国局域网第一次进去较慢,请耐心等待……)

进去之后把邮件发送到指定邮箱,点击查看你的邮件得分,它会自动搜寻你发的邮件并作出评估,满分10分。

下面我根据网站建议,列出邮件服务器的一些设置注意点。

邮件内容

邮件里面不要有任何不需要的危险内容,例如JavaScriptiFrame等等。

邮件里面不要有死链和缩短的网址

邮件里面不应当只有图片

SPF设置

邮件域名必须要有SPF反垃圾记录(TXT记录)。

记录头v=spf1

记录头声明了该TXT记录是SPF记录并且版本为1

记录字段(IPv4地址)ip4:xxx.xxx.xxx.xxx

该记录字段表明许可邮件服务器的IPv4地址,支持IP段。

记录字段(IPv6地址)ip6:xxxx.xxxx.xxxx.xxxx

该记录字段表明许可邮件服务器的IPv6地址,支持IP段。

记录字段(all)-all ; ~all ; +all

第一个字段指禁止服务器邮件(其它),第二个指软拒绝服务器邮件(其它)(不拒收但是会标记),第三个是接受所有的邮件(不反垃圾)

记录字段(A记录)a ; a:domain.xxx

直接使用代表指定当前A记录,可和域名连用表示其它域名的记录。

记录字段(MX记录)mx ; mx:domain.xxx

直接使用代表指定当前MX记录,可和域名连用表示其它域名的记录。

记录字段(include)include:domain.xxx

包括指定域名的SPF记录。

推荐记录示例v=spf1 ip4:xxx.xxx.xxx.xxx a mx ~all

可根据上面的介绍自行修改。

MX服务器指定

设置MX服务器到你的邮件服务器(接收邮件),即使不收邮件也最好设置下。

反向DNS解析

设置邮件服务器的反向DNS解析,可以有效防止其它邮件服务器的拦截,这个向你的主机商申请就行了。

DKIM签名

这个不详细介绍,就是使用签发证书来发送邮件,可选必需……。

下面以CentOS+Postfix为例,演示开启DKIM密钥验证。

下载OpenDKIM

yum install opendkim -y

配置OpenDKIM

vi /etc/opendkim.conf

填入以下内容(配置可自行修改)

AutoRestart             Yes
AutoRestartRate         10/1h
LogWhy                  Yes
Syslog                  Yes
SyslogSuccess           Yes
Mode                    sv
Canonicalization        relaxed/simple
ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
InternalHosts           refile:/etc/opendkim/TrustedHosts
KeyTable                refile:/etc/opendkim/KeyTable
SigningTable            refile:/etc/opendkim/SigningTable
SignatureAlgorithm      rsa-sha256
Socket                  inet:8891@localhost
PidFile                 /var/run/opendkim/opendkim.pid
UMask                   022
UserID                  opendkim:opendkim
TemporaryDirectory      /var/tmp

创建密钥

(记得把yourdomain.ltd换成自己域名,下同)

mkdir /etc/opendkim/keys/yourdomain.ltd
opendkim-genkey -D /etc/opendkim/keys/yourdomain.ltd/ -d yourdomain.ltd -s default

添加到密钥表

vi /etc/opendkim/KeyTable

填入以下内容

default._domainkey.yourdomain.ltd yourdomain.ltd:default:/etc/opendkim/keys/yourdomain.ltd/default.private

然后

vi /etc/opendkim/SigningTable

填入以下内容

*@yourdomain.ltd default._domainkey.yourdomain.ltd

添加授权签名主机到白名单

vi /etc/opendkim/TrustedHosts

填入127.0.0.1(本机)和你的其它主机

更新权限(重要)

chown -R opendkim: /etc/opendkim/keys/yourdomain.ltd

域名DNS记录更新

vi /etc/opendkim/keys/yourdomain.ltd/default.txt

复制引号里面的内容(开头v=DKIM1;k=rsa;p=*一大长串*),然后打开你的域名DNS解析管理面板,添加

主机记录    default._domainkey
记录值      *刚才你复制的内容*

然后等几分钟在https://dkimcore.org/tools/检测密钥的合理性(Check a published DKIM Core Key),SelectordefaultDomain name你的域名

编辑Postfix配置

vi /etc/postfix/main.cf

填入以下内容

smtpd_milters           = inet:127.0.0.1:8891
non_smtpd_milters       = inet:127.0.0.1:8891
milter_protocol         = 2
milter_default_action   = accept

启动服务

service opendkim start
service postfix reload

添加自启动

chkconfig opendkim on

服务器IP是否有发送垃圾邮件的前科

这个可以说是唯一一个自己不能解决的问题,除非换IP地址。

若是这个IP以前发过垃圾邮件,被一些邮件服务器黑名单收进去了,那基本就没什么希望了。

本文距离最后一次更新已超过180天,部分内容可能会随着时间的推移变更或失效。

相关文章

已有 2 条评论
  1. Terry

    3.6分的我笑而不语。

    Terry 老司机 | | Windows 10 x64 Edition | Google Chrome 66.0.3359.139
    1. Jimmy Ho

      @Terry

      有cPanel怕什么,再自己作死一波

      Jimmy Ho 萌萌哒博主 | | Android 8.0.0 | Opera 1.170623.027

此处无声胜有声