注:本文的邮件服务器只用于发送邮件,也就是STMP服务器。
这里主要供zabbix发送报警邮件使用,防止zabbix直接发送邮件因网络抖动而邮件丢失
一、准备工作
- 为邮件服务器添加DNS解析
虽然不加DNS解析也能把邮件发出去,但会被大多数邮件服务器当作垃圾邮件。根据我们的实际经验,需要添加三条DNS解析记录:A记录、MX记录、TXT记录。比如域名cnblogs.info,对应的DNS记录如下:
- 准备存放邮件的硬盘空间
二、配置postfix
postfix是CentOS默认安装的邮件服务器软件。以下配置示例假设要配置的域名是cnblogs.info,邮件服务器主机名是mail.cnblogs.info。
1、 打开postfix的配置文件
2、 :75 光标移至第75行,修改myhostname
3、 :83 光标移至第83行,修改mydomain
4、 :99 光标移至第99行,修改myorigin
5、 :116光标移至第116行,修改inet_interfaces
6、 :119光标移至第119行,修改inet_protocols
7、 :164光标移至第164行,添加$mydomain
8、 :264光标移至第264行,修改mynetworks
子网掩码(netmask)转换器:Network and IP address calculator
9、 :419 光标移至第419行,设置home_mailbox
10.、:425 光标移至第425行,设置mail_spool_directory,/data是之前挂载的数据盘,mail目录需要通过mkdir命令创建
11、 重启postfix使设置生效
三、用telnet测试邮件服务器是否正常
简洁快速测试方式:
查看邮件队列
Telnet测试方式:
1、 在邮件服务器上安装telnet
2、 连接服务器SMTP端口
3、 填写发件人
回车
4、 填写收件人
回车
5、 撰写邮件内容
5.1 开始写邮件内容
回车
5.2 输入标题
回车
5.3 输入内容,并以.号结束
如果显示下面的信息,说明邮件进入发送队列
四、授权其他服务器通过该邮件服务器发送邮件
未授权的情况下,如果在其他服务器telnet这台服务器,在输入收件人之后会出现Relay access denied错误
解决方法:
vi /etc/postfix/main.cf,:264将光标移至第264行,在mynetworks的值之后加这台的服务器IP地址,比如:
service postfix restart之后,问题解决。
五、其他问题
收到上面telnet发出的邮件时,你会发现收件人信息显示的是undisclosed recipients,解决方法是在DATA命令之后,输入Subject之前,分别输入:
默认跟Postfix 相关的邮件都会放在/var/spool/postfix/目录下,以下是每个目录的用途