CentOS 6下使用sendmail搭建简单邮件传输服务器

介绍:

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(邮件接收代理)的配置参考此篇文章:

https://www.ibadboy.net/archives/958.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code