一、邮件服务需求
在实际生产环境中,我们的服务器难免会发生故障,这时候就需要有邮件通知运维人员,及时查出问题,解决问题。所以邮件服务在生产中有着不可或缺的作用!
二、操作环境
操作系统: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.文章中出现的所有坑,我是通过查日志和上网搜索,还有自己的总结出来的,若有相似部分,是参考借鉴,并非抄袭!