安装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:/# mail Heirloom 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 syslog Syslog 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.com KeyFile /var/db/dkim/default.private Selector default Canonicalization relaxed/simple X-Header yes Socket inet:9999@localhost |
DKIM配置完成,再修改Postfix中的配置,在发信的时候启用加密功能。
在 /etc/postfix/main.cf 中加入如下内容:
1 2 3 4 | smtpd_milters= inet:localhost:9999 milter_default_action = accept milter_protocol = 2 non_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