介绍:
sendmail是linux/unix下比较常用的开源免费邮件传输代理程序(MTA)。
需要安装的软件包:
sendmail(邮件传输代理,用于发送及转发邮件,使用smtp协议) sendmail-cf(包含配置过程中需要使用的m4工具)
安装命令:
yum install -y sendmail sendmail-cf
DNS配置:
DNS服务器的配置方法参考此篇文章:
https://www.ibadboy.net/archives/1027.html
最终要求添加一个sx.com的域名并配置DNS解析为如下形式:
本实验中DNS服务器IP地址:192.168.162.244,邮件服务器IP地址:192.168.162.245。
注意MX记录要写在前面(如上图),否则会出错。
配置完DNS服务器之后别忘了将邮件传输服务器的DNS修改为DNS服务器的地址,否则会导致邮件传输服务器无法转发邮件哦。
Centos下修改DNS的方法参考此篇文章:
https://www.ibadboy.net/archives/1055.html
sendmail配置部分:
sendmail主配置文件:
实际上sandmail的主配置文件是/etc/mail/sendmail.cf,但因为该配置文件使用宏语言编写,一般人难以看懂更别提编辑了。
所以sendmail提供了一个/etc/mail/sendmail.mc文件,此文件可读性远远大于sendmail.cf,使用者可以直接编辑sendmail.mc文件再通过m4工具生成相对应的sendmail.cf配置文件供sendmail读取。
使用vim文本编辑器打开sendmail.mc
vim /etc/mail/sendmail.mc
找到第116行(因软件版本差异行号可能对不上),如下图,将此行中Addr=127.0.0.1修改为本机公网IP地址(MX记录对应的域名所解析出的IP地址,本实验中为192.168.162.245),也可以改为0.0.0.0。这里是定义让sendmail监听哪个地址,默认是监听127.0.0.1(本地回环),修改为0.0.0.0是监听所有地址,也可以像本实验中设置的只监听某个指定的公网地址。
修改后如图:
保存并退出。
使用m4工具生成与刚刚编辑的sendmail.mc相对应的sendmail.cf文件
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
编辑/etc/mail/access文件定义允许接收或转发哪些主机的邮件。
vim /etc/mail/access
如上图,定义了允许接收并转发192.168.162网段中所有主机的邮件。
关于/etc/mail/access配置文件的详细配置方法请转到此篇文章了解:
https://www.ibadboy.net/archives/676.html
保存并退出
生成与刚刚编辑的/etc/mail/access相对应的数据库文件。
makemap hash /etc/mail/access < /etc/mail/access
编辑/etc/mail/local-host-names定义本机的域(如不定义,默认以主机名作为本机域),当sendmail收到邮件时会依据此文件来判断邮件的目标地址是本域还是其他域,如果是本域则投递到对应账号的邮箱内,如果是其他域则进行转发。
vim /etc/mail/local-host-names
配置方法很简单,一行一个域名即可,如下图。
保存并退出,自此sendmail部分配置完成。
启动服务:
在保证selinux及防火墙均已关闭的情况下启动sendmail服务。
service sendmail start
但需要注意的是,一个完整的邮件系统不应该只包含使用SMTP协议的MTA(邮件传输代理),还应该包括使用POP3或IMAP协议的MRA(邮件接收代理)
推荐同时配置完MTA(邮件传输代理)和MRA(邮件接收代理)后一起进行最后的服务测试。
关于MRA(邮件接收代理)的配置参考此篇文章: