解决sendmail发送中文utf-8 html文件出现的乱码的问题
思韵闪耀
2013-03-18
0

公司里一个小项目,需要用php定期统计当前未解的bug,并通过邮件的方式发送出来

bug统计使用的是php + postgres 邮件是使用sendmail

采用的方式是:

1. 首先使用php run sql查询,生成utf-8格式的html文件

2. call命令行发送email

/usr/sbin/sendmail xxx@xxx.com < /var/www/gforge/www/xxx.html

其中/usr/sbin/sendmail是sendmail的路径

< 之后的是生成的html

3. 使用crontab将相应的脚本文件做定期执行

==========================================

1,3执行起来都没有问题

在进行2的时候,发现发出来的邮件都被随机的莫名其妙的加上了一些英文感叹号!

导致看上去非常怪。

Debug过程:

1. 开始以为是脚本生成时产生的问题,但是发现生成的html本身并没有这些符号。

2. 于是将邮件导出为eml格式,然后用notepad++打开。打开后发现,每个!都出现在行尾,于是..猜测可能这个问题的原因应该是sendmail对中文字符做强制换行时出现的问题

3. 打开生成的html看,发现程序员那边确实再每个div之间没有用rn做物理换行

4. 用查找替换将</div>换成</div>rn(notepad++支持在替换时加换行符)

再次执行发送,这次邮件就没有乱字符了。

=========================================

总结:

如果要用sendmail来发送html文件,最好人为做一些换行


【版权声明】
本站部分内容来源于互联网,本站不拥有所有权,不承担相关法律责任。如果发现本站有侵权的内容,欢迎发送邮件至masing@13sy.com 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

相关内容

热门资讯

Discus X论坛配置sen... Discuz x2.5 后台邮件设置方法其实和X2/x1.5基本一样,但很多同学都不注意一些细节,比...
redhat Linux系统配... 1 .检查Send Mail 的安装包 [root@sql root]# rpm -qa | gre...
使用Sendmail的反垃圾邮... 在最近几年,无处不在的垃圾邮件已使得所有邮件箱不堪重负,不断地需要工具以抗击这一无穷尽的垃圾邮件流。...