sendEmail的乱码问题,标题和正文乱码解决方案,nagios专用吧?嘿嘿。

sendEmail乱码问题

正文乱码:
添加-o message-charset=utf-8即可,貌似再添加-o message-header=utf-8也没有问题

邮件标题乱码:
这个需要base64编码,邮件标题不能出现非ASCII码,所以必须转,常用的base64编码

使用base64编码来操作,base64不是加密,只是编码
在标题转化成base64后,需要声明一下编码,声明编码,加编码类型例如: =?UTF-8?B?,标题字符串后加:?=
以下为一个例子

Rsubject="=?UTF-8?B?"`echo -n $subject | base64`"?="
echo $Rsubject
/usr/bin/sendEmail -f jjg@hardwork.cn -t "$to_addr" -u "`echo -e ${Rsubject}`" -s smtp.163.com -xu jjg@163.com -xp password -o message-file=/tmp/mail
body_temp -o message-content-type=text -o message-charset=utf-8 -o message-header=utf-8

出去后就不再乱码了
echo说明

-n 不输出行尾的换行符.
-e 允许对下面列出的加反斜线转义的字符进行解释.

发表回复

您的电子邮箱地址不会被公开。