sendEmail 是一个邮件代理传输程序,当sendmail程序得到一封待发送的邮件的时候,它需要根据目标地址确定将信件投递给对应的服务器,这是通过DNS服务实现的。例如一封邮件的目标地址是xxx@163.com,那么sendmail首先确定这个地址是用户名+机器名(163.com)的格式,然后,通过查询DNS来确定需要把信件投递给某个服务器。
工作时遇到要定时获取服务器上的一个文件,所以就想到了sendEmail。下面介绍一下sendEmail的配置和使用:
1、下载sendEmail
主页http://caspian.dotconf.net/menu/Software/SendEmail/
wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
2、安装
#tar -zxvf sendEmail-v1.56.tar.gz
#cd sendEmail-v1.56
#cp sendEmail /usr/bin
二、sendemail的使用说明
1.查看sendemail帮助
/usr/bin/sendemail --help
2.sendemail基本参数
/usr/bin/sendemail
-f 619341326@qq.com 发件人邮箱地址
-t test@qq.com 收件人邮箱
-s smtp.qq.com 发件人邮箱的smtp服务器
-u '标题' 邮件的主题
-o message-content-type=html 邮件内容的格式为html,也可以是text
-o message-charset=utf8 邮件内容编码
-xu 619341326@qq.com 发件人账号
-xp 123456 发件人密码
-m '邮件内容' 邮件的内容
3.发送邮件命令demo:
/usr/bin/sendEmail -o tls=yes -s "smtp.exmail.qq.com:587" -f xx.cui@xx.com -t xx.cui@xx.com -u "主题" -o message-content-type=html -o message-charset=utf8 -xu ss.cui@ss.com -xp password -m "[$url] can not normally access,please deal with it as soon as possible "
问题1:
[root@java bin]#/usr/bin/sendemail -o tls=yes -s "smtp.exmail.qq.com:465" -f "发送邮箱" -t "接收邮箱" -xu "发送邮箱" -xp "发送邮箱密码" -u "邮件标题" -m "邮件正文"
返回:ERROR => Timeout while reading from smtp.exmail.qq.com:465 There was no response after 60 seconds.
解决方法:将465换成587,即为/usr/bin/sendemail -o tls=yes -s "smtp.exmail.qq.com:587" -f "发送邮箱" -t "接收邮箱" -xu "发送邮箱" -xp "发送邮箱密码" -u "邮件标题" -m "邮件正文"
问题2:
[root@java bin]#/usr/bin/sendemail -o tls=yes -s "smtp.exmail.qq.com:587" -f "发送邮箱" -t "接收邮箱" -xu "发送邮箱" -xp "发送邮箱密码" -u "邮件标题" -m "邮件正文"
返回:invalid SSL_version specified at /usr/share/perl5/vendor_perl/IO/Socket/SSL.pm line 444.
解决方法:vi /usr/bin/sendemail
第 1906 行,将 'SSLv3 TLSv1' 修改为 'SSLv23:!SSLv2'
如果还是不行,再安装插件
yum install -y perl perl-IO-Socket-SSL perl-Net-SSLeay
装完先发送一个测试邮件试试,OK了再更新到nagios command。