一、邮件服务需求

在实际生产环境中,我们的服务器难免会发生故障,这时候就需要有邮件通知运维人员,及时查出问题,解决问题。所以邮件服务在生产中有着不可或缺的作用!

二、操作环境

操作系统:CentOS 7 64位

三、安装步骤

1.直接yum 安装

yum install mailx -y

2.修改配置文件

vim /etc/mail.rc 在末行插入: set from=****2664@qq.com #涉及隐私,未展示出账号 set smtp=smtp.qq.com set smtp-auth-user=****2664@qq.com #涉及隐私,未展示出账号 set smtp-auth-password=邮箱密码 #涉及隐私,未展示出密码 set smtp-auth=login

3.测试邮件发送

echo "hello world" | mail -s "testmail" 1***2664@qq.com

坑一(腾讯的坑):

你会发现邮件无法发送出去,报警信息如下图:

这时候,你要检查账户密码是否输入正确,在你再三确认后,你发现依旧发送失败,几近崩溃! 其实,这是腾讯给挖的坑,腾讯邮箱需要开启客户端授权码进行第三方登录验证。

解决办法: 1.打开自己的腾讯邮箱,“设置”---“账户”--“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”

2.在IMAP/SMTP服务一栏右侧单击"开启",会弹出一个密保验证窗口,根据提示,发送短信验证

3.点击”我已发送“,会自动生成授权码,要记住此授权码! 4.在邮件配置中邮件密码换成授权码 vim /etc/mail.rc set smtp-auth-password=授权码 #涉及隐私,未展示出授权码

5.重启邮件服务 systemctl restart postfix

再次测试,如果你的服务器不是阿里云服务器,可能没问题了,但要是阿里云的服务器,就会发现邮件服务启动都失败了,白忙活了? 不是的,这里还有另一个坑!

坑二(阿里云的坑):

重启服务会报错,如下图:

查看日志或查看邮件状态,以便获得故障原因

进入主配置文件main.cf, 定位inet_interfaces参数 vim /etc/postfix/main.cf

原因猜测:本地接口不支持ipv6协议,改协议类型为ipv4

posfix 服务重启,发送测试邮件验证

问题解决,于是我又试了改本地接口为all(支持所有),如下:

posfix 服务重启,再次发送测试邮件验证

问题解决,我接着把修改接口为all,协议类型为ipv4,如下:

posfix 服务重启,再次发送测试邮件验证

踩坑总结:我对故障的猜测是对的,本地接口(localhost)不支持ipv6协议,以上3种方法都是正确修改,归纳一下:

坑三(贪心的坑):

一般情况下,应该不会碰到,排了上面3个坑后,其他配置正常,邮件还是无法发出,报错如下图:

我碰到过这个报错,原因是我的qq邮箱在多个服务器上面同时登陆,腾讯官网不支持邮箱同时登陆!

解决方法: 1.切换登陆qq邮箱账号,使用其他qq账号或其他种类邮箱,如139邮箱,163邮箱等。 2.不要同时启动邮件服务,在一台服务器上面登陆,其他服务器上面停止posfix 服务。

温馨提示:

1.本文写出qq邮箱第三方登陆授权方法,而139邮箱,163邮箱第三方授权设置方法类似,文章未写出,因为现在使用qq邮箱的人还是最多的! 2.经过我的几次安装postfix对比,不是阿里云的服务器,不会踩坑二的。 3.初次安装postfix 服务,遇到的坑比较多,不要慌,要看报错信息,不懂得,可以百度一下。若没有报错信息,可以查看日志,要养成查日志的好习惯。 4.文章中出现的所有坑,我是通过查日志和上网搜索,还有自己的总结出来的,若有相似部分,是参考借鉴,并非抄袭!