使用sendmail产生subject乱码

来源:互联网 发布:卡尔荣格的书淘宝 编辑:程序博客网 时间:2024/06/04 01:31

首先,这个问题头疼了我好多天,因为我一共使用sendmail同时发送5封邮件,邮件的subject分别为【XX】XXXX总数据,【XX】XXXXXXpart1数据,【XX】XXXXpart2数据,【XX】XXXXpart3数据,【XX】XXXXpart4数据,其中有一些是有英文,有一些是有重复字符串,最后导致的结果是一部分的邮件标题不乱吗,一部分的乱码,有时候修改邮件的内容,标题也会变得乱码,我从shell的编码格式,到输出格式,到html的格式,都调整过,还是找不到原因,最后只有单测样例,通过删除邮件标题中的某个字段来测试结果,发现果然成功,可能是subject的某些字符串编码结果造成了邮箱软件输出的类似于sql注入的效果,造成了乱码。

我的测试方法是:


 echo "XXXXXX" |formail -I "XXXXX@XXXXX.com" -I "XXXXXX@XXXX.com" -I "MIME-Version:1.0" -I "Content-type:text/html;charset=UTF-8" -I "Subject:=?UTF-8?B?`echo '【XXX】XXXXXXX明细' |iconv -f 'UTF-8' -t 'UTF-8' |openssl enc -base64 `?=" | /usr/sbin/sendmail -oi XXXXXXX@XXXXX.com



大家在测试的时候可以一步一步的删除subject中的字符来看是哪个字的乱码。然后尝试修改下。