配置域名MX记录
host -t mx test.com
卸载sendmail
service sendmail stop
chkconfig sendmail off
安装postfix
yum -y install postfix
查看安装路径及文件
rpm -ql postfix
配置 Postfix
备份配置文件
cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
vi /etc/postfix/main.cf
设置运行 Postfix 服务的邮件主机的主机名、域名,如下所示:
# main.cf 第77行附近
myhostname = mail.example.com
# main.cf 第85行附近
mydomain = example.com
设置由本机寄出的邮件所使用的域名或主机名称,如下所示:
# main.cf 第99行附近,这里使用的是 mydomain 的值,也可以自己设置值,如:myrogin = example.com
myorigin = $mydomain
设置强制 Postfix 使用IPv4协议
# main.cf 第114行附近
inet_protocols=ipv4
设置 Postfix 服务监听的网络接口,如下所示:
# main.cf 第116行附近,填写 localhost,只允许通过 localhost 或 127.0.0.1 发送
# 如果邮件服务器是专门为其它服务器服务的,请直接填写 all,如
# inet_interfaces = all
inet_interfaces = all
设置可接收邮件的主机名称或域名,如下所示:
# main.cf 第167行附近,我的需求是只发送邮件,不接收外来邮件,所以填写 localhost,如果要接受邮件请按照下面设置
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
设置可转发哪些网络的邮件,如下所示:
# main.cf 第264行附近,主转发本机的
mynetworks = 127.0.0.0/8, hash:/etc/postfix/access
设置可转发哪些网域(当然这个也必须能由DNS正常解析才行)的邮件,此选项针对上下级MTA而言,区别于 Postfix 的 access,一般选择默认选项即可,如下所示:
# main.cf 第296行附近
relay_domains = $mydestination
配置完成后,我们检查一下 Postfix 语法,然后启动它。
修改/etc/hosts
vi /etc/hosts
serverip test.com mail.test.com
用以下命令检查 Postfix 服务的语法:
/usr/sbin/postconf -n
启动 Postfix 邮件,并配置为自启动服务:
service postfix start
chkconfig postfix on
测试发送邮件
简单的用命令行的方式,给自己发送一封邮件,命令如下:
#example@126.com 换成自己的邮箱地址
echo 'test' | mail -s 'test' example@126.com
看看能不能收到
配置DKIM
安装opendkim
yum install opendkim -y
安装完成后,输入如下命令,会在当前目录下生成公钥和私钥两个文件:default.private 和 default.txt
opendkim-genkey -r -d mail.test.com
default.txt 里面的内容类似如下:
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提取的,如下内容:
v=DKIM1;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbJarHD2SlFuWVu3UAu//MyrHuGq+C53tJI9O2R5hdM8cknX4aH3QLzYEimcTBzKEfC+OoayJPMgPOgqQCEGPqD3o6mz1FDVxPRhDZg+5ghqmgPB4MlgQAxsoiutwuwb9k5+RtRsPonGjJyKU+cKMk7nD7gG5Y3w5Vky2n+h0wdwIDAQAB
把私钥放到想要的位置,比如/var/db/dkim/
在/etc/opendkim.conf文件中,由KeyFile参数指定上面的私钥位置,配置如下:
PidFile /var/run/opendkim/opendkim.pid
Mode sv
Syslog yes
SyslogSuccess yes
LogWhy yes
UserID opendkim:opendkim
Socket inet:8891@localhost
Umask 002
Canonicalization relaxed/relaxed
Domain mail.test.com
Selector default
MinimumKeyBits 1024
KeyTable /etc/opendkim/KeyTable
SigningTable refile:/etc/opendkim/SigningTable
vi /etc/opendkim/KeyTable
default._domainkey.test.com test.com:default:/etc/opendkim/keys/default.private
vi /etc/opendkim/SigningTable
*@test.com default._domainkey.test.com
DKIM配置完成,再修改Postfix中的配置,在发信的时候启用加密功能。
在 /etc/postfix/main.cf 中加入如下内容:
smtpd_milters= inet:localhost:8891
milter_default_action = accept
milter_protocol = 2
non_smtpd_milters = inet:localhost:8891
设置权限
chown -R opendkim:opendkim /etc/opendkim/keys/default.private
重启opendkim和Postfix即可。
service opendkim restart
service postfix restart
然后验证吧:http://dkimcore.org/tools/
Check a published DKIM Core Key:
Selector:default
Domain name:mail.quanlei.com
或者
dig default._domainkey.test.com TXT
接着再发邮件到gmail和hotmail中查看dkim是否有签名。
配置SPR
除了DKIM,还可以在DNS上增加SPF配置来提高邮件发送成功的几率,添加一条txt记录:
主机记录 = mail
记录类型 = txt
记录值 = “v=spf1 a mx ptr ip4:8.8.8.8 mx:mail.test.com ~all” (不包含引号,其中的IP换成自己的IP)
验证是否配置成功:
dig -t txt mail.quanlei.com
; QUESTION SECTION:
;mail.quanlei.com. IN TXT
;; ANSWER SECTION:
mail.quanlei.com. 300 IN TXT "v=spf1 ip4:8.8.8.8 ~all"
配置SMTP
安装 cyrus-sasl 软件包,它牵涉的依赖关系包比较多,命令如下:
yum -y install cyrus-sasl*
启动 saslauthd 服务,并配置成自启动服务
service saslauthd restart
chkconfig saslauthd on
修改配置
vi /etc/sysconfig/saslauthd
MECH=shadow
service saslauthd restart
添加下列内容到主配置文件/etc/postfix/main.cf,让 Postfix 启用 SMTP 认证,代码如下:
# 把此代码添加到 /etc/postfix/main.cf 最后
# smtp
smtpd_sasl_auth_enable = yes
smtpd_sasl_local_domain =
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
broken_sasl_auth_clients = yes
smtpd_client_restrictions = permit_sasl_authenticated
smtpd_sasl_security_options = noanonymous
配置PTR(反向解析)
联系服务商吧,linode可以在后台自助设置.
检测spf dkim效果
http://www.brandonchecketts.com/emailtest.php
http://www.mail-tester.com/
查看日志
tail -f /var/log/maillog
解决fatal: open database /etc/postfix/access.db: No such file or directory错误
/usr/sbin/postmap /etc/postfix/access
微软Sender ID Framework
http://www.microsoft.com/mscorp/safety/content/technologies/senderid/wizard/default.aspx
安装日志查看工具Pflogsumm
yum install perl-Date-Cal postfix-pflogsumm -y
pflogsumm -d today /var/log/maillog
pflogsumm -d yesterday /var/log/maillog
pflogsumm -d today /var/log/maillog > /var/www/html/result.txt
pflogsumm /var/log/maillog | mail -s "Mail Server Stats" YOUREMAIL@YOURDOMAIN.TLD
写入crontab
crontab -e
0 */24 * * * /usr/sbin/pflogsumm -d yesterday /var/log/maillog | mail -s "Mail Server Stats" YOUREMAIL@YOURDOMAIN.TLD