公司的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 *****\n\n状态: $HOSTSTATE$\n主机IP: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\n时间: $LONGDATETIME$\n" | /usr/bin/mail -s "$HOSTSTATE$:$HOSTNAME$" $CONTACTEMAIL$
# }
#(NEW)-WANGLI
define command{
command_name notify-host-by-email
command_line /usr/bin/printf "%b" "***** Nagios *****\n\n状态: $HOSTSTATE$\n主机IP: $HOSTADDRESS$\nInfo: $HOSTOUTPUT$\n\n时间: $LONGDATETIME$\n" | /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 *****\n\n服务: $SERVICEDESC$\n主机IP: $HOSTADDRESS$\n状态: $SERVICESTATE$\n\n时间: $SHORTDATETIME$\n\n追加信息:\n\n$SERVICEOUTPUT$\n" | /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 *****\n\n服务: $SERVICEDESC$\n主机IP: $HOSTADDRESS$\n状态: $SERVICESTATE$\n\n时间: $SHORTDATETIME$\n\n追加信息:\n\n$SERVICEOUTPUT$\n" | /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`?=" [email protected] < emailtextfile
转载请注明出处!http://www.cnblogs.com/milude0161/p/4205414.html