安装Postfix
为了方便操作 sudo -i 拿到root权限。
输入以下命令,安装postfix:
| 1 | apt-get install postfix | 
安装过程中,在配置界面,选择:Internet Site
下一步,在 System mail name 中填写 mail.quanlei.com
然后Postfix就安装完毕,接下来进行配置,Postfix的配置文件在:
| 1 | /etc/postfix/main.cf | 
给邮件服务器添加域名:
| 1 | mydestination = mail.quanlei.com, localhost.localdomain, localhost | 
安装邮件客户端进行测试:
| 1 | apt-get install heirloom-mailx | 
测试发个邮件(coolbee2002@163.com是我的163邮件,换成你的):
| 1 | echo "test" | mail coolbee2002@163.com | 
收到邮件后,回复一下,然后通过下面命令查看(quit命令退出):
| 1 2 3 4 5 | root@localhost:/# mailHeirloom mailx version 12.5 6/20/10.  Type ? for help."/var/mail/root": 1 message 1 new>N  1 no-reply@mail.quanlei Mon Jun  4 13:05   16/645  ***?  | 
配置Maildir格式存储邮件,在/etc/postfix/main.cf中加入
| 1 2 | home_mailbox = Maildir/mailbox_command = | 
最后重启下Postfix:
| 1 | /etc/init.d/postfix restart | 
ps: 发送邮件的默认端口是25,收信端口是110,两个端口需要在防火墙中开放,否则会出现发不出去,收不到的情况。
配置DKIM
通过上面的配置,发送邮件和接收邮件已经OK了,为了防止邮件被判定为垃圾邮件,可以给邮件系统增加DKIM(DomainKeys Identified Mail)功能,其主要的原理通俗的说,就是在发送邮件的时候通过私钥在邮件头写一段加密信息,然后公钥放到DNS服务器上,邮件的接收方通过邮件头的加密信息来和DNS上的公钥比对来判定邮件来源是否合法。
| 1 | apt-get install opendkim | 
安装完成后,输入如下命令,会在当前目录下生成公钥和私钥两个文件:default.private 和 default.txt
| 1 | opendkim-genkey -r -d mail.quanlei.com | 
default.txt 里面的内容类似如下:
| 1 | default._domainkey IN TXT "v=DKIM1;=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbJarHD2SlFuWVu3UAu//MyrHuGq+C53tJI9O2R5hdM8cknX4aH3QLzYEimcTBzKEfC+OoayJPMgPOgqQCEGPqD3o6mz1FDVxPRhDZg+5ghqmgPB4MlgQAxsoiutwuwb9k5+RtRsPonGjJyKU+cKMk7nD7gG5Y3w5Vky2n+h0wdwIDAQAB" ; ----- DKIM default for mail.quanlei.com | 
在你的域名管理界面,添加一条txt记录,把公钥放在域名上:
主机记录 = default._domainkey.mail.quanlei.com
记录类型 = txt
记录值中的内容,是从default.txt提取的,如下内容:
| 1 | v=DKIM1;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbJarHD2SlFuWVu3UAu//MyrHuGq+C53tJI9O2R5hdM8cknX4aH3QLzYEimcTBzKEfC+OoayJPMgPOgqQCEGPqD3o6mz1FDVxPRhDZg+5ghqmgPB4MlgQAxsoiutwuwb9k5+RtRsPonGjJyKU+cKMk7nD7gG5Y3w5Vky2n+h0wdwIDAQAB | 
把私钥放到想要的位置,比如/var/db/dkim/
在opendkim.conf文件中,由KeyFile参数指定上面的私钥位置,配置如下:
| 01 02 03 04 05 06 07 08 09 10 11 12 13 | # Log to syslogSyslog                  yes# Required to use local socket with MTAs that access the socket as a non-# privileged user (e.g. Postfix)UMask                   002# Sign for example.com with key in /etc/mail/dkim.key using# selector ‘2007‘ (e.g. 2007._domainkey.example.com)Domain                  mail.licaibaogao.comKeyFile                 /var/db/dkim/default.privateSelector                defaultCanonicalization        relaxed/simpleX-Header yesSocket inet:9999@localhost | 
DKIM配置完成,再修改Postfix中的配置,在发信的时候启用加密功能。
在 /etc/postfix/main.cf 中加入如下内容:
| 1 2 3 4 | smtpd_milters= inet:localhost:9999milter_default_action = acceptmilter_protocol = 2non_smtpd_milters = inet:localhost:9999 | 
重启opendkim和Postfix即可。
然后验证吧:http://dkimcore.org/tools/
Check a published DKIM Core Key:
Selector:default
Domain name:mail.quanlei.com
接着再发邮件到gmail和hotmail中查看dkim是否有签名。
. TAG: ubuntu postfix DKIM


