使用sendmail产生subject乱码

本文探讨了使用sendmail发送带有特定格式主题的邮件时出现乱码的问题,并提供了一种逐步排除法来定位引起乱码的具体字符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先,这个问题头疼了我好多天,因为我一共使用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中的字符来看是哪个字的乱码。然后尝试修改下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值