Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
typcn
V2EX  ›  Linux

在 CentOS 上搭建 带有 DKIM 签名的 满分邮件服务器

  •  
  •   typcn ·
    typcn · Jan 13, 2015 · 13722 views
    This topic created in 4154 days ago, the information mentioned may be changed or developed.

    blogpic

    你可以到 http://www.mail-tester.com/ 检测你的邮件分数

    blogpic

    SPF 记录的设置

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

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

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

    反向解析

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

    DKIM 签名

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

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

    blogpic

    我的服务器使用的是 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:[email protected]
    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 。

    blogpic

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

    blogpic

    此时 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
    

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

    来一发

    blogpic

    我们通过 telnet 进行测试发送

    blogpic

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

    blogpic

    原地址(欢迎常来): http://blog.eqoe.cn/posts/build-perfect-mail-server.html

    如果有错误欢迎指正

    26 replies    2015-01-15 11:13:53 +08:00
    ilancelot
        1
    ilancelot  
       Jan 13, 2015
    简洁明了,这就去试试。
    iLiberty
        2
    iLiberty  
       Jan 13, 2015
    Mark 过会儿看
    miyuki
        3
    miyuki  
       Jan 13, 2015 via Android
    mark 感谢 PO 主的教程
    TrustyWolf
        4
    TrustyWolf  
       Jan 13, 2015   ❤️ 2
    EPEL源安装只需要一个命令:
    yum -y install epel-release
    zjgood
        5
    zjgood  
       Jan 13, 2015 via Android
    感谢
    wtchalloo
        6
    wtchalloo  
       Jan 13, 2015
    f(m)uck→_→
    Devin
        7
    Devin  
       Jan 13, 2015
    SPF记录的作用究竟大不大?
    orzfly
        8
    orzfly  
       Jan 13, 2015   ❤️ 1
    其实就算满分了,短时间之内还是会被 Gmail SPAM 的很麻烦吧……
    顺带一提如果不想折腾可以用这个: https://mailinabox.email
    lightryanking
        9
    lightryanking  
       Jan 13, 2015
    感谢楼主分享。最近对mail 非常感兴趣 :)
    mengzhuo
        10
    mengzhuo  
       Jan 13, 2015   ❤️ 1
    @Devin
    SPF是检验发件服务器是不是允许的范围内
    自然重要了

    也可以参考我写的一篇:
    https://mengzhuo.org/blog/?p=2142
    extreme
        11
    extreme  
       Jan 13, 2015
    这些只是告诉收件方你是经过验证的发件人。
    你还需要告诉收件方,当收到无法通过这些验证的邮件时,如何处理。
    不然,收件方仍然会收取无法通过验证的邮件。
    这个东西就是:
    DMARC
    typcn
        12
    typcn  
    OP
       Jan 14, 2015   ❤️ 1
    @extreme 谢谢,明天了解一下
    ysz1996
        13
    ysz1996  
       Jan 14, 2015 via Android
    诺 不是要铜币么
    typcn
        14
    typcn  
    OP
       Jan 14, 2015
    @orzfly 我试过的啊, Gmail 163 QQ 全部可以到收件箱
    scys
        15
    scys  
       Jan 14, 2015
    很不错,近来正想搭建一个独立的邮件服务器
    Delbert
        16
    Delbert  
       Jan 14, 2015
    满分不满分和邮件内容相关的吧?
    纯文本和富媒体分数就不一样,有没有图片 链接,邮件长度都影响得分,得分是针对邮件而不是仅仅针对服务器的吧?
    之前测试过,服务器不变,更改内容就可以改变得分。
    typcn
        17
    typcn  
    OP
       Jan 14, 2015
    @Delbert 只是在那个测试中可以得到10分,我现在发的带 css+图片+链接 的注册确认信就没问题
    Akiyori
        18
    Akiyori  
       Jan 14, 2015 via iPhone
    Mailtester满分,SpamAssassin 垃圾邮件可能性负分但是 Gmail 首次发送一定是进 spam 的默默路过...
    liuchen9586
        19
    liuchen9586  
       Jan 14, 2015
    不错,收藏了
    感谢楼主分享。

    不过第一封进垃圾箱是怎么回事…
    typcn
        20
    typcn  
    OP
       Jan 14, 2015
    @liuchen9586 我第一封直接收件箱诶,可能跟内容有关?我是注册确认信
    ibudao
        21
    ibudao  
       Jan 14, 2015
    人生苦短,我用zimbra
    viesong
        22
    viesong  
       Jan 14, 2015
    服务器只能解决基本的问题,后期的,发送、频率、预热、分析、太耗时耗力,推荐使用 SUBMAIL http://submail.cn/chs 比自建服务器 性价比更高。
    typcn
        23
    typcn  
    OP
       Jan 14, 2015
    @viesong 每次发出去邮件都显示 xxx 代发,点了链接还是 xxx 域名,不觉得很掉档次吗。
    分析,说白了也就是个一个带统计的短网址跳转系统,邮件里面 <img src> 计算打开量,链接经过跳转计算点击量
    tititake
        24
    tititake  
       Jan 14, 2015
    header_check做了吗?
    过滤 Received/X-Originating-IP/X-Mailer

    否则用邮件客户端发信测试,如Outlook,还是不会给满分。
    viesong
        25
    viesong  
       Jan 14, 2015
    @typcn SUBMAIL 不显示任何代发信息。。。。
    windyboy
        26
    windyboy  
       Jan 15, 2015
    配dkim的时候应该还要指定一下key
    一般是本域名的话,就把private指定为key就可以
    此外keys的目录需要指定所有者为opendkim
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2856 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 73ms · UTC 09:00 · PVG 17:00 · LAX 02:00 · JFK 05:00
    ♥ Do have faith in what you're doing.