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

2015-01-13 22:51:35 +08:00
 typcn

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

SPF 记录的设置

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

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

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

反向解析

请联系你的机房,或 云服务商,国内目前仅阿里云可以联系客服进行免费设置,国外一般 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 邮箱都到达了收件箱

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

如果有错误欢迎指正

12826 次点击
所在节点    Linux
26 条回复
ibudao
2015-01-14 10:59:11 +08:00
人生苦短,我用zimbra
viesong
2015-01-14 15:44:12 +08:00
服务器只能解决基本的问题,后期的,发送、频率、预热、分析、太耗时耗力,推荐使用 SUBMAIL http://submail.cn/chs 比自建服务器 性价比更高。
typcn
2015-01-14 18:44:10 +08:00
@viesong 每次发出去邮件都显示 xxx 代发,点了链接还是 xxx 域名,不觉得很掉档次吗。
分析,说白了也就是个一个带统计的短网址跳转系统,邮件里面 <img src> 计算打开量,链接经过跳转计算点击量
tititake
2015-01-14 22:15:57 +08:00
header_check做了吗?
过滤 Received/X-Originating-IP/X-Mailer

否则用邮件客户端发信测试,如Outlook,还是不会给满分。
viesong
2015-01-14 22:42:10 +08:00
@typcn SUBMAIL 不显示任何代发信息。。。。
windyboy
2015-01-15 11:13:53 +08:00
配dkim的时候应该还要指定一下key
一般是本域名的话,就把private指定为key就可以
此外keys的目录需要指定所有者为opendkim

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/161912

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX