一般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

提示:如果是QQ邮箱,要设置邮箱开启客户端连接支持,设置-->账户-->开启POP3/SMTP服务