一般Linux发送报警邮件通过本地邮箱或外部邮箱服务器,我习惯使用本地邮箱发邮件,装个Sendmail安装启动,即可实现发送邮件功能,但会存在两个问题:
1、发件人默认显示主机名,有的会被邮件服务商当垃圾邮件处理,也可以使用mutt定义发件人解决这个问题,要麻烦一下。
2、发件延迟,正常的话,一分钟之内可以收到,延迟大的话,几个小时收不到也很正常,这样一来运维工程师没有及时收到告警邮件,耽误问题处理及时性。
针对这两个问题,用外部邮箱就可以解决,你只需简单注册个国内的邮件服务商邮箱,如163,也可以使用公司邮箱,需要安装mailx工具,mailx是一个小型的邮件发送程序,安装很简单,如下:
CentOS:
# yum install mailx
# vi /etc/mail.rc #添加邮件信息
set from=baojingtongzhi@163.com smtp=smtp.163.com
set smtp-auth-user=baojingtongzhi@163.com smtp-auth-password=123456
set smtp-auth=login
Ubuntu:
# sudo apt-get install heirloom-mailx
# vi /etc/nail.rc #注意文件名和CentOS不同
set from=baojingtongzhi@163.com smtp=smtp.163.com
set smtp-auth-user=baojingtongzhi@163.com smtp-auth-password=123456
set smtp-auth=login
发送邮件测试:
# echo "this is test mail." |mail -s "test mail" xxx@163.com