2-12-部署Postfix邮件服务器实现邮件的收发功能
试验环境:
服务端:xuegod63.cn IP:192.168.1.63
部署Postfix+Dovecot
Postfix:提供邮件发送功能,使用的协议:SMTP,端口:25
Dovecot:提供邮件接收功能,使用的协议:POP3、IMAP,端口:110,143
邮件通信协议
1、SMTP(SimpleMail Transfer Protocol,简单邮件传输协议):主要用于发送和传输邮件。SMTP协议使用的TCP端口为25。对于支持发信认证的邮件服务器,将会采用扩展的SMTP协议(Extended SMTP)。
2、POP(PostOffice Protocol,邮局协议):主要用于从邮件服务器中收取邮件。目前POP协议的最新版本是POP3。POP3协议使用的TCP端口号为110。
3、IMAP(InternetMessage Access Protocol,互联网消息访问协议):同样用于收取邮件。目前IMAP协议的最新版本是IMAP4。与POP3相比较,IMAP4协议提供了更为灵活和强大的邮件收取,邮件管理功能。IMAP4协议使用的TCP端口号为143。
使用比较多的商业邮件系统:
1、ExchangeWindows系统中最著名的邮件服务器软件。也是微软公司的重量级产品,可以和活动目录等应用很好的结合在一起,当使用Windows服务器平台构建电子邮件系统时,Exchange自然就成为首选。
2、Notes/Domino:由IBM公司出品的商业电子邮件和办公写作软件产品,其功能丰富,强大,集成性较好且提供跨平台的支持,给用户提供了广泛的选择。多应用用于一些高校、政府部门、银行等较大型的企业单位。
开源邮件系统:
Sendmail:对于运行在UNIX/Linux环境中的邮件服务器,Sendmail无疑是资格最老的,目前仍然有许多企业的电子邮件系统是使用Sendmail进行搭建的。Sendmail运行的稳定性较好,但安全性欠佳。
Qmail:另一款运行在UNIX/Linux环境中的邮件服务器,比Sendmail具有更好的执行效率,且配置、管理更加方便,很多商用电子邮件系统都采用Qmail作为服务器。
Postfix:同样运行在UNIX/Linux环境中的邮件服务器,Postfix由Wietse负责开发,其目的是为Sendmail提供一个更好的替代产品。Postfix在投递效率、稳定性、服务器性能及安全性方面都有相当出色的表现。
实战1:部署一台邮件服务器,提供用户发送和接受邮件的功能
[[email protected] ~]#yum -y install postfix #安装postfix,默认是已经安装过的。
[[email protected] ~]#service postfix restart #重启服务
[[email protected] ~]#chkconfig postfix on #设置开机自动启动
配置主配文件:
[[email protected] ~]#vim /etc/postfix/main.cf
修改以下内容:
inet_interfaces= 192.168.1.63 //监听服务的IP地址,默认为all
myhostname= xuegod63.cn //邮件服务器的主机名
mydomain= xuegod63.cn //邮件域
myorigin= $mydomain //外发邮件时发件人地址中的邮件域
mydestination= $myhostname, localhost.$mydomain, localhost, $mydomain
//允许投递到本地的目标邮件域
home_mailbox= Maildir/ //设置邮件的存储位置和格式
保存文件。
[[email protected]~]# service postfix restart
添加测试邮箱帐号密码:
用telnet功能测试smtp发送邮件:
先安装telnet,使用aa给bb发送邮件。
[[email protected] ~]#yum -y install telnet
[[email protected] ~]#telnet xuegod63.cn 25
Trying192.168.1.63...
Connectedto xuegod63.cn.
Escapecharacter is ‘^]‘.
220xuegod63.cn ESMTP Postfix
heloxuegod63.cn //宣告服务端地址
250xuegod63.cn
mailfrom:[email protected] //告知发件人地址
2502.1.0 Ok
rcptto:[email protected] //告知收件人地址
2502.1.5 Ok
data //告知要发送邮件数据
354End data with <CR><LF>.<CR><LF>
subject:TestMail! //指定邮件主题
Dearswk: //编写邮件正文
I LOVE YOU!
. //单独的点号表示正文结束
2502.0.0 Ok: queued as A6B0B413D
quit //断开连接并退出
2212.0.0 Bye
Connectionclosed by foreign host.
在bb用户的宿主目录下查看收到的邮件
[[email protected] ~]#ls /home/bb/Maildir/new/
#####################################################################
安装Dovecot,配置收信服务。
[[email protected] ~]#yum -y install dovecot
修改配置文件
[[email protected] ~]#vim /etc/dovecot/dovecot.conf
结尾添加内容:
!includeconf.d/10-auth.conf //只使用系统用户认证
ssl= no //禁用ssl机制
disable_plaintext_auth= no //允许明文验证
mail_location= maildir:~/Maildir //设置邮件格式及位置
启动dovecot服务,并确认监听状态
[[email protected]~]# service dovecot restart
[[email protected]~]# chkconfig dovecot on
[[email protected]~]# netstat -anptu | grep dovecot
POP3接收邮件测试:
[[email protected]~]# telnet xuegod63.cn 110
使用outlook测试
测试给BB发送邮件。
在另一端登录BB帐号:
BB收到了测试邮件。
实战2。部署一台需要认证的邮件服务器,可转发到外域。
安装之前可以先确认一下时候能支持认证功能
[[email protected]~]# postconf -a
cyrus
dovecot
能看到以上内容说明支持认证功能
如果不支持,可以手动安装软件包
[[email protected]~]# yum -y install cyrus-sasl*
设置Cyrus sasl函数库,并启动saslauthd服务
[[email protected]~]# vim /etc/sasl2/smtpd.conf
pwcheck_method:saslauthd
mech_list:plain login
看到显示有着两行内容保存退出。
[[email protected]~]# service saslauthd start
正在启动 saslauthd: [确定]
[[email protected]~]# chkconfig saslauthd on
修改main.cf配置,添加SMTP认证配置,并重启服务
[[email protected] ~]# vim/etc/postfix/main.cf
行尾添加如下内容。
readme_directory =/usr/share/doc/postfix-2.6.6/README_FILES
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options =noanonymous
mynetworks = 127.0.0.1
smtpd_recipient_restrictions =permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
[[email protected] ~]# service postfix restart
由于试验环境问题,网络也有可能出现问题,
此次测试域外发信,未成功。