当我使用sina的smtp来发送.发现总是会有时不解码,有时能解码.

看一下email的原文,发现在协议中声明encode时,声明是bit8时,sina就会出现问题.

但是看一下subject:编码.发现当标题字过长时,会有问题,看了一下代码,应该是编码时超过76个字时自动换行了.而sina==这些服务器不认这些规则;

导致不能正常解码.

 

于是修改email的所有编码成base64

且直接使用这个编码,

不用里面的.

比较直接的方式是

用自己程序发出的email原文跟qq收件箱中的原文比对就知道了

 

标题格式是固定的

 

Subject: =?gb2312?B?t6LLzbi9vP6junJlYWx3b3JkLmh0bQ==?=

 

Subject: =?gb2312?B?标题base64编码?=

 

内容格式

 

--=====003_Dragon336814556280_=====

Content-Type: text/plain; charset="gb2312"

Content-Transfer-Encoding: base64

指定编码是base64

 

DQrTyrz+1vfM4qO6QVNURC1TVEFEyte97NDCvNPGwsjLwabXyrG+v6q3orTzu+ENCg0KMjAxMS0xMC0yNCANCg0KDQoNCtXFvM7OsCANCtbQyMvN+CANCtbQyMvJzLPHDQqxsb6p1tDIy8340MXPotfJ0a/T0M/euavLvg0KtdjWt6O6sbG+qdbQudi05barwrc2NrrFysC8zb/Gw7O088/DQdf5MTGy46OsMTAwMTkwDQq157uwo7owMTAtNTk4MzE2NjgNCrSr1eajujAxMC01OTgzMTYwMA0Kyta7+qO6MTg2MTAxNDEwNTMNCtPKz+Sjump3emhhbmdAY2hpbmFocmQubmV0DQpNU046dmx2Y3RyYWNlQGhvdG1haWwuY29tDQrN+Na3o7podHRwOi8vd3d3LmNoaW5haHJkLm5ldC8gDQogDQo=