Postfix邮件系统安装与配置:Postfix,Cyrus-IMAP,Cyrus-sasl,Dovecot和SPF
最近发现邮件发送服务还是挺重要的。可能对于每天只有一百来封的邮件发送需求的个人博主来说,一个免费的邮箱提供的免费SMTP邮件发送服务就可以满足了,但是对于一些大型的网站、论坛和平台,每天的邮件发送量可以达到上万封以上,免费的邮件发送服务是不能满足需要了。
市场上已经有了不少的付费邮件发送服务,但是终归是第三方的邮件发送服务,在邮件发送方式、邮件内容等方面肯定要受到不少的限制。与其花大量的时间寻找更好的付费邮件服务,还不如自己动手利用VPS或者服务器搭建一个属于自己的邮件发送平台,搭建起来并不复杂,使用起来很方便。
本文就来分享一下用Postfix,Cyrus-IMAP,Cyrus-sasl,Dovecot和SPF搭建邮件系统的过程。Postfix是Wietse Venema在IBM的GPL协议之下开发的MTA开源软件,可以用来代替sendmail,特点是免费、灵活、快速和兼容性好,可以承担大量的邮件发送任务。
Cyrus-IMAP和Cyrus-sasl是两个用来提供pop和imap服务,功能和Dovecot 一样,都是开源的IMAP 和POP3邮件服务器。SPF是反垃圾组件,主要的作用就是通过SPF让别人验证自己,域名添加txt记录,向支持SPF功能的邮件服务器提供验证信息。同时验证别人,配置邮件服务器支持 SPF,对每封进入的邮件进行SPF验证。
经典的邮件系统搭建一般是:postfix(作为发送邮件服务器)+Cyrus-IMAP和Cyrus-sasl或者dovecot(作为接收邮件服务器)+mysql(作为数据库)+ SPF反垃圾验证。当然有人可能还要求有Webmail,有了Webmail界面就能像企业邮局那样在线管理邮件了。
Postfix邮件系统安装与配置:Postfix,Cyrus-IMAP,Cyrus-sasl,Dovecot和SPF
一、Postfix,Cyrus-IMAP,Cyrus-sasl 安装
1、CentOS上执行命令:
1 2 3 4 |
yum install postfix yum install cyrus* |
2、删除系统自带的Sendmail。
1 2 3 4 5 |
rpm -e sendmail 或者 yum remove sendmail |
3、修改MTA(默认邮件传输代理)
1 2 3 |
alternatives --config mta |
4、按下回车键保存当前选择,或者输入数字设置默认。
5、也可以直接输入命令:
1 2 3 |
/usr/sbin/alternatives --set mta /usr/sbin/sendmail.postfix |
6、检查一下是不是已经设置成功了。
1 2 3 |
alternatives --display mta |
1、Postfix的配置文件是main.cf,路径是:/etc/postfix/main.cf。
2、用文本编辑器打开它进行相应的修改,建议将这个文件下载到本地使用Notepad++等常用的代码编辑器修改。
3、主要是将下面的代码前的#号去掉,如果没有则直接手动添加(用 hostname 可以查看本机主机名)。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
myhostname = localhost //76行,改成本机名称 mydomain = freehao123.com //82行,设置域名 myorigin = $mydomain //97行,去掉注释 inet_interfaces = all //112行,去掉注释 mydestination = $myhostname, localhost.$mydomain, localhost,$mydomain //163行,去掉注释 mynetworks = 192.168.0.0/24, 127.0.0.0/8 //263行,设置内网和本地IP local_recipient_maps = //209行,去掉注释 smtpd_banner = $myhostname ESMTP unknow //568行,去掉注释,然后把$mail_name ($mail_version)改成unknow //在main.cf文件的底部加上以下内容 smtpd_sasl_auth_enable = yes //使用SMTP认证 broken_sasl_auth_clients = yes //让不支持RFC2554的smtpclient也可以跟postfix做交互。 smtpd_sasl_local_domain = $myhostname // 指定SMTP认证的本地域名 smtpd_sasl_security_options = noanonymous //取消匿名登陆方式 smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设定邮件中有关收件人部分的限制 smtpd_sasl_security_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination //设置允许范围 message_size_limit = 15728640 //邮件大小 mailbox_transport=lmtp:unix:/var/lib/imap/socket/lmtp //设置连接cyrus-imapd的路径 |
三、Cyrus-IMAP,Cyrus-sasl 配置
1、Cyrus-sasl 配置,编辑:vim /etc/sasl2/smtpd.conf (注意:如果是32位的CentOS,应该是:vim /usr/lib/sasl2/smtpd.conf ),加入以下代码,主要是设置记录Log模式,设置smtp寻找cyrus-sasl的路径。
1 2 3 4 |
log_level: 3 saslauthd_path:/var/run/saslauthd/mux |
2、cyrus-imapd的主要配置文件有:/etc/sysconfig/cyrus-imapd,/etc/cyrus.conf,/etc/imapd.conf。imapd.conf还包含非常多的参数,例如邮件存储目录、管理员账号、连接认证方式等等,具体的需要参考官网。
四、启动Postfix,Cyrus-IMAP,Cyrus-sasl
1、 执行以下命令启动Postfix,Cyrus-IMAP,Cyrus-sasl :
1 2 3 4 5 |
/etc/init.d/postfix start /etc/init.d/saslauthd start /etc/init.d/cyrus-imapd start |
2、执行命令:netstat -tpnl |grep smtpd ,可以查看端口是否正常打开 。执行命令:service postfix status 可以查看Postfix状态。以下命令可以设置开机启动:
1 2 3 4 |
chkconfig postfix on chkconfig cyrus-imapd on |
3、检测Cyrus-sasl 。先设置一下cyrus密码,命令:passwd cyrus ,然后使用命令:testsaslauthd -u cyrus -p ‘123546’ 来测试SMTP是否正常。
4、检测cyrus-imapd,并创建新的邮件账号。命令:id cyrus是用来查看cyrus管理员账号的,默认的就是cyrus。创建邮件账号命令:
1 2 3 4 5 6 7 |
cyradm -u cyrus localhost (32位) cyradm -u cyrus localhost --auth plain (64位) cm freehao123 (新建) lm (显示) quit (退出) |
5、 生成的邮件目录是放在/var/spool/imap中,以目录形式存放。查看:ls /var/spool/imap/ ,目录名是用户名的首字母。
1、需要说明的是Dovecot和Cyrus-IMAP,Cyrus-sasl只需要选择其中一项即可,否则会出现端口被占用无法启用的情况,执行命令安装:
1 2 3 |
yum -y install dovecot |
2、 编辑Dovecot的配置文件:/etc/dovecot/dovecot.conf,主要是设置protocols = imap pop3,default_mail_env = maildir:~/Maildir是设置邮件目录,新版的配置文件中如果被注释,直接去掉#号。
3、在/etc/postfix/main.cf 配置中除了按照上面的方法进行相应的修改外,还记得加上:
1 2 3 4 |
smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth |
4、然后加入以下配置文件:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
auth default { socket listen { client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } mechanisms = plain login } |
4、启动dovecot:/etc/rc.d/init.d/dovecot start,重启dovecot:/etc/init.d/dovecot restart,将dovecot设置为开机启动:chkconfig dovecot on 。
1、 要想使用Postfix邮件系统,你需要先把邮件系统的域名解析到服务器上,添加一个别名Mail,记录值指向服务器IP,例如:mail.zhujis.com
2、将域名的MX设置为:mail.zhujis.com
3、待域名DNS生效后,你就可以用Linux自带的Mail来发一封测试邮件:mail -s ‘I am Freehao123’ 798558110@qq.com < /etc/imapd.conf
4、这是QQ邮箱收到了Postfix邮件系统发来的邮件。
5、如果CentOS没有安装中文字体,会出现邮件乱码。
6、执行命令:cat /var/log/maillog 可以查看Postfix收发邮件记录。
1、执行以下命令给Postfix邮件系统安装SPF:
1 2 3 4 5 6 7 8 9 10 |
wget https://launchpad.net/postfix-policyd-spf-perl/trunk/release2.010/+download/postfix-policyd-spf-perl-2.010.tar.gz perl -MCPAN -e 'install version' perl -MCPAN -e 'install NetAddr::IP' perl -MCPAN -e 'install Mail::SPF' perl -MCPAN -e 'install Sys::Hostname::Long' tar zxvf postfix-policyd-spf-perl-2.010.tar.gz cd postfix-policyd-spf-perl-2.010 cp postfix-policyd-spf-perl /usr/libexec/postfix/policyd-spf-perl |
2、如果出现错误,可能是Perl没有安装完整,执行以下命令安装:
1 2 3 4 5 6 7 8 |
wget http://cpan.communilink.net/authors/id/A/AN/ANDK/CPAN-1.9600.tar.gz tar -zxvf CPAN-1.9600.tar.gz cd CPAN-1.9600 perl Makefile.PL make make install |
3、编辑SPF的配置文件:/etc/postfix/master.cf,加入以下内容
1 2 3 4 |
policy unix - n n - 0 spawn user=nobody argv=/usr/local/postfix/libexec/postfix-policyd-spf-perl |
4、然后再编辑Poxtfix配置文件,添加以下内容(如果已经有了,去掉前面的注释号)。
1 2 3 |
smtpd_recipient_restrictions =reject_unauth_destination,check_policy_service unix:private/policy |
5、最后重新载入 postfix 服务:postfix reload
八、postfix邮件系统小结
1、postfix邮件系统可以用来替代sendmail发送邮件,如果你不想使用Pop和Imap服务,可以只安装postfix,并将其设置为默认的发邮件服务,这样服务器在发邮件时就是通过postfix了。
Postfix,Cyrus-IMAP,Cyrus-sasl,Dovecot
2、postfix邮件系统配合maildorp、extmail、extman等就要可以搭建一个企业邮局了,如果再配合好SPF反垃圾邮件策略,就可以满足日常大量的邮件收发任务了,且供多人同时使用。
文章出自:免费资源部落 文章中部分代码参考blog.51yip.com博客。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。
1
2014 年 11 月 30 日 10:16
1
Sang
2014 年 12 月 4 日 10:14
路过
test
2014 年 12 月 4 日 10:21
Test