NAGIOS 使用sendmail发送邮件关于标题乱码的解决方法

公司的nagios报警发送邮件,标题乱码,我在解决问题的时候,发现,只有往公司的新浪企业邮箱发送邮件会产生乱码问题(标题乱码),而向我自己的邮箱(163,qq)发送都不会有乱码的问题,考虑发送邮件和接收邮件,只有发送邮件可以考虑,接收邮件考虑不了(邮箱没有编码。。。。。),所以只能更改配置或者更改邮箱(必须的用企业邮箱),所以只有一个办法了,修改配置;在网上搜了好久看到许多解决办法,其中借鉴了(http://blog.sina.com.cn/s/blog_485acedb0100z51f.html)这篇博客,但是这个方法根本行不通,更改后,nagios报警不会发送邮件,然后我又在这个基础上更改了一下代码,然后就可以了,更改代码如下:

# 'notify-host-by-email' command definition(OLD)
#define command{
# command_name notify-host-by-email
# command_line /usr/bin/printf "%b" "***** Nagios ***** 状态: $HOSTSTATE$ 主机IP: $HOSTADDRESS$ Info: $HOSTOUTPUT$ 时间: $LONGDATETIME$ " | /usr/bin/mail -s "$HOSTSTATE$:$HOSTNAME$" $CONTACTEMAIL$
# }
#(NEW)-WANGLI
define command{
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "***** Nagios ***** 状态: $HOSTSTATE$ 主机IP: $HOSTADDRESS$ Info: $HOSTOUTPUT$ 时间: $LONGDATETIME$ " | /usr/bin/mail -a "Content-Type:utf-8" -s "=?utf-8?B?`echo "$HOSTSTATE$:$HOSTNAME$" |base64`?=" $CONTACTEMAIL$
}

# 'notify-service-by-email' command definition(OLD)
#define command{
# command_name notify-service-by-email
# command_line /usr/bin/printf "%b" "***** Nagios ***** 服务: $SERVICEDESC$ 主机IP: $HOSTADDRESS$ 状态: $SERVICESTATE$ 时间: $SHORTDATETIME$ 追加信息: $SERVICEOUTPUT$ " | /usr/bin/mail -s "** $SERVICESTATE$:$HOSTADDRESS$ $SERVICEDESC$ **" $CONTACTEMAIL$
# }
#(NEW)-WANGLI
define command{
command_name notify-service-by-email
command_line /usr/bin/printf "%b" "***** Nagios ***** 服务: $SERVICEDESC$ 主机IP: $HOSTADDRESS$ 状态: $SERVICESTATE$ 时间: $SHORTDATETIME$ 追加信息: $SERVICEOUTPUT$ " | /usr/bin/mail -a "Content-Type:utf-8" -s "=?utf-8?B?`echo "** $SERVICESTATE$:$HOSTADDRESS$ $SERVICEDESC$ **" |base64`?=" $CONTACTEMAIL$
}

简单总结的说:就是要把邮箱地址放在base之外,放在里面不知道什么原因邮件发送不出去,我猜测是邮件地址不能识别的问题;研究了好几天nagios报警发邮件的问题,猜测:如果用sendEmail发送邮件不知道会不会产生这个问题,没有root用户密码,安装不了sendEmail,想法实现不了。。。。。。。。

总结在命令行的指令为:
mail -a "Content-Type:utf-8" -s "=?utf-8?B?`echo <主题> | base64`?=" xxx@emailhost < emailtextfile

补充:去掉 -a "Content-Type:utf-8" 也可以,这个用处是将报警信息以附件的形式发给指定的邮箱。

转载请注明出处!http://www.cnblogs.com/milude0161/p/4205414.html

原文地址:https://www.cnblogs.com/milude0161/p/4205414.html