• 你可以到 http://www.mail-tester.com/ 检测你的邮件分数, 满分才合格哦!

    很多朋友邮件发到 QQ 邮箱都进垃圾箱,或者干脆收不到,如何让你的邮件准确到达收件箱呢?

    需要做到以下几点

    1. SPF 记录 (重要)
    2. DKIM 签名
    3. IP 地址反向解析
    4. 邮件内容不要含有特殊字符以及明显的广告内容

    SPF 记录的设置

    向你的邮件域名添加一条 TXT 记录

    v=spf1 ip4:发信服务器的IP ~all

    当然您也可以添加多个 IP 地址,网上有很多教程,这里就不在赘述了。

    反向解析 (PTR)

    请联系你的机房,或 云服务商,国内目前仅阿里云可以联系客服进行免费设置,国外一般 VPS 的控制面板就可以。

    DKIM 签名

    本文使用的是 CentOS + Postfix 其他软件自行变通

    首先,向你的 CentOS 添加 EPEL 库 , http://fedoraproject.org/wiki/EPEL 可以在这里寻找适合你操作系统的库。

    我的服务器使用的是 CentOS 6.5 所以下载 EPEL 6 ( 由于 EPEL 所提供的镜像是 IPV6 地址,请确保你的服务器已经开启 IPV6 )

    wget http://ftp6.sjtu.edu.cn/fedora/epel/6/i386/epel-release-6-8.noarch.rpm
    rpm -Uvh epel-release-6-8.noarch.rpm
    rm -f epel-release-6-8.noarch.rpm
    

    添加成功后,安装 opendkim

    yum install opendkim
    

    创建 opendkim 配置文件

    vi /etc/opendkim.conf
    

    填入以下内容

    Canonicalization        relaxed/relaxed
    ExternalIgnoreList      refile:/etc/opendkim/TrustedHosts
    InternalHosts           refile:/etc/opendkim/TrustedHosts
    KeyTable                refile:/etc/opendkim/KeyTable
    LogWhy                  Yes
    MinimumKeyBits          1024
    Mode                    sv
    PidFile                 /var/run/opendkim/opendkim.pid
    SigningTable            refile:/etc/opendkim/SigningTable
    Socket                  inet:8891@127.0.0.1
    Syslog                  Yes
    SyslogSuccess           Yes
    TemporaryDirectory      /var/tmp
    UMask                   022
    UserID                  opendkim:opendkim
    

    创建密钥

    mkdir /etc/opendkim/keys/YourDomain.com
    opendkim-genkey -D /etc/opendkim/keys/YourDomain.com/ -d YourDomain.com -s default 
    

    创建完毕后,将其添加到 /etc/opendkim/KeyTable 中

    default._domainkey.YourDomain.com YourDomain.com:default:/etc/opendkim/keys/YourDomain.com/default.private
    

    然后添加 /etc/opendkim/SigningTable

    *@YourDomain.com default._domainkey.YourDomain.com
    

    设置允许进行签名的主机 到 /etc/opendkim/TrustedHosts 中,一般情况下都是本机发信,我们将 127.0.0.1 加入即可。

    设置 DNS 记录

    到 /etc/opendkim/keys/YourDomain.com/default.txt 可以找到你的 key 。

    记录类型 TXT 子域名 default._domainkey ,记录内容就是 default.txt 里面从 v=DKIM1 开始的内容。

    此时 DKIM 签名软件已经可以正常工作了,接下来就要让 Postfix 所发的邮件经过其处理

    编辑 Postfix 配置

    打开 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
    #正常返回应为 Starting OpenDKIM Milter:     [  OK  ]
    
    postfix reload
    

    如果没有错误的话,现在应该可以开始发送了

    来一发

    我们通过 telnet 进行测试发送

    可以看出无论是腾讯企业邮还是 QQ 邮箱都到达了收件箱