提醒:本文最后更新于 2812 天前,文中所描述的信息可能已发生改变,请仔细核实。
在之前的帖子里(《Postfix添加DKIM协议,完善DNS中的SPF解析》),最后实现的DKIM效果是失败的,发送出的邮件并不带DKIM签名。但是我一直没有发现问题所在。
使用DKIM可以使得vps邮件系统发送出去的邮件被标记为Spam的程度降低了(DKIM是个评分标准)。这样会减少可能被标记为Spam的机会。所以使用DKIM还是比较有必要的。
对于DKIM,它的全称是电子邮件验证标准——域名密钥识别邮件标准,是DomainKeys Identified Mail的缩写。
今天在无意发现syslog服务被我禁用后,我总算知道为毛我一直没看到任何错误,fuck。
在启用了服务后,终于在/var/log/maillog看到了错误报告:
warning: connect to Milter service local:/var/run/dkim-milter/dkim.sock: Permission denied
检查了权限问题,发现毫无问题。
不巧,还是今天,承蒙Roy(PaulHost、PaulVPS、WitLayer Cloud创立者)的慷慨,借用了临时vps(与现在vps相同配置),使用了Debian系统,测试是没有问题,邮件生成并带有DKIM签名。
回到CentOS,在尝试了重装postfix,dkim-milter等之类失败后,我尝试修改配置,Socket不以文件方式,而直接使用port,并且对配置进行其它微调(后面会给出shell)。
好消息是成功了,在/var/log/maillog中提示了:
dkim-filter[13247]: Sendmail DKIM Filter v2.8.3 starting
下面是安装方式,原创(* 记得一些参数要根据你的情况修改):
#有bug或者一些错误,欢迎交流!rpm -ivh http://download4.fedora.redhat.com/pub/epel/5/`uname -i`/dkim-milter-2.8.3-8.el5.`uname -i`.rpm --nodeps
wget -O dkim-milter.tar.gz http://sourceforge.net/projects/dkim-milter/files/latest/download?source=files
tar zxvf dkim-milter.tar.gz
cd dkim-milter-*
mkdir -p /etc/dkim-milter/keys/
cp ./dkim-filter/dkim-genkey.sh /etc/dkim-milter/keys/
cd /etc/dkim-milter/keys/
chmod +x ./dkim-genkey.sh
chown dkim-milter /etc/dkim-milter
chmod 700 /etc/dkim-milter
chgrp postfix /var/run/dkim-milter
chmod 770 /var/run/dkim-milter
./dkim-genkey.sh -r -d `hostname -f`
chown dkim-milter /etc/dkim-milter/keys/default.private
mv /etc/dkim-milter/keys/default.private /etc/dkim-milter/keys/default.key.pem
#会生成default.txt 和 default.private
#根据default.txt 里面的内容,将DNS的TXT记录添加好
#default.private已安置好,并改名为default.key.pem,可以使用了
#下面的命令,大家根据实际微调
echo "*@kn007.net:kn007.net:/etc/dkim-milter/keys/default.key.pem" >> /etc/mail/dkim-milter/keys/keylist
echo 'AutoRestart yes' >> /etc/mail/dkim-milter/dkim-filter.conf
echo 'AutoRestartRate 10/1h' >> /etc/mail/dkim-milter/dkim-filter.conf
echo 'Domain kn007.net' >> /etc/mail/dkim-milter/dkim-filter.conf
echo 'SubDomains yes' >> /etc/mail/dkim-milter/dkim-filter.conf
echo 'Selector default' >> /etc/mail/dkim-milter/dkim-filter.conf
echo 'KeyFile /etc/dkim-milter/keys/default.key.pem' >> /etc/mail/dkim-milter/dkim-filter.conf
echo 'Background yes' >> /etc/mail/dkim-milter/dkim-filter.conf
echo 'Socket inet:8891' >> /etc/mail/dkim-milter/dkim-filter.conf
echo 'Userid dkim-milter' >> /etc/mail/dkim-milter/dkim-filter.conf
echo 'smtpd_milters = inet:8891' >> /etc/postfix/main.cf
echo 'non_smtpd_milters = inet:8891' >> /etc/postfix/main.cf
echo 'milter_protocol = 2' >> /etc/postfix/main.cf
echo 'milter_default_action = accept' >> /etc/postfix/main.cf
echo "" > /var/log/maillog
chkconfig --level 345 dkim-milter on
service dkim-milter start
service postfix restart
cat /var/log/maillog
题外话:话说Debian的apt-get源蛮多的,安装什么都挺省事的。。。CentOS的yum有时真让人崩溃。
转载请注明转自:kn007的个人博客的《[Postfix进阶]CentOS邮件系统添加DKIM签名》
沙发,七七回复我吧。。看看你会不会进垃圾箱。我博客反正不会进垃圾箱~
@郑杰: 3分最多,所以不会垃圾箱,5分直接进了
我就想,去他大爷的吧,进就进吧。。。
@大发: 其实我也这样想,但总要折腾折腾
哥已经转战电影界
@大发: 开始做影评?
@kn007: 整上了,不知道生效没,哈哈
@大发: 哈,你可以测试一下
仔细看了一下~~但是现在我的问题很复杂~~~比较难搞。。。
@Sam: 为毛呢
我勒个擦,这篇文章还真火。。。小爷我一搜,第一个就是
@杰杰杰杰杰: 哈哈,必须的
chown dkim-milter /etc/dkim-milter
自己随便加个dkim-milter用户就行了?
@小王涛: 你安装的时候(rpm的时候)会自动创建用户的啊
@kn007: 呃,我看到你那个
#有bug或者一些错误,欢迎交流!rpm -ivh http://download4.fedora.redhat.com/pub/epel/5/`uname -i`/dkim-milter-2.8.3-8.el5.`uname -i`.rpm --nodeps
我看你注释了,而且这个下载地址是没有的,(地址已经替换为x86_64了),以为后面才rpm安装。。。
@kn007: http://download4.fedora.redhat.com/pub/epel/5/x86_64/dkim-milter-2.8.3-8.el5.x86_64.rpm
这个文件确实是不存在的
@小王涛: epel 6,不是5。。。这贴是centos5.9 x86的。貌似地址是失效了,手机,无法帮你找回备用地址。你可以尝试搜索一下
@kn007: 我去这里找了,这个目录里面都没有dkim-milter,,,, http://download4.fedora.redhat.com/pub/epel/6/x86_64/
@小王涛: 这个地址已经被废弃了。还存在的地址:
http://software.virtualmin.com/gpl/centos/6.3/x86_64/dkim-milter-2.8.3-8.el6.x86_64.rpm
@kn007: 谢谢,先不折腾了,要出差了。
无解,不折腾了。
@小王涛: 额。好的
好TMD麻烦啊 不折腾这个了