Linux 通过sendmail 发邮件到外部邮箱
最近在写自动化巡检脚本,想着怎么预警后自动发送邮件报警。
首先下载最新版本mailx-12.4.tar.bz2
# wget http://sourceforge.net/projects/heirloom/files/latest/download?source=files
解压包:
# tar jxvf mailx-12.4.tar.bz2 # cd mailx-12.4 # make # make install UCBINSTALL=/usr/bin/install
注意:如果没有卸载旧版本的mailx,是不能直接使用mailx或mail命令的,否则使用的仍然是旧版mailx。
查看版本号:
/home/mailx-12.4/mailx -V
写入.bashrc
# vi /root/.bashrc 添加一行:alias mail='/home/mailx-12.4/mailx' # source /root/.bashrc
这时再执行mail命令即代表新版mailx。
接下来配置新版mailx使用外部邮箱发送邮件:
编辑/etc/nail.rc(注意不是旧版的/etc/mail.rc):
vi /etc/nail.rc 添加两行:
setfrom=myname@linuxidc.com smtp=smtp.linuxidc.com set smtp-auth-user=myname smtp-auth-password=password smtp-auth=login
第一行指明所使用的外部邮箱及smtp服务器
第二行指明外部邮箱使用的用户名和密码
保存,并重启sendmail服务
service sendmail restart
如果执行报错:
sendmail: unrecognized service
是因为没有安装sendmail,通过yum安装上就ok
yum install sendmail
安装成功,继续执行重启sendmail服务步骤
sendmail启动成功后怎么使用呢?
#echo 'Tset ' | mail -s "Test test" aremiyi@163.com #echo 'Tset ' 表示内容 #-s "Test test" 表示标题 #也可以打印整个文件内容 #cat /home/Tset.log | mail -s "Test test" aremiyi@163.com
yum install -y sendmail mailx
vim /etc/mail.rc