smtp开发中乱码问题解决方法

Smtp发送中文邮件的时候也会产生像ftp乱码的现象,不知道在网上这样的资料很少,让我们那些第一次遇到这种问题的人真不知道该从何下手,不过还好,这个问题相对ftp的解决起来简单一些,因为我们可以很清楚地想到还是要根据他的rfc文档来进行代码的调整,描述smtprfc文件有:rfc2821,2045,2046,2047,2048,2049,因为rfc文档是权威性的协议开发手册,所以进行网络协议的开发的对于这种编程遇到问题第一想到的当然是查文档,

Smtp发送邮件要注意编码方面问题的至少包括两个部分:邮件主题和邮件内容,至于其他的属性都是英文的表示形式,对这种情况编码方式并不敏感,所以我们最主要的任务就是找出设置主题和内容为某种制定编码的格式的rfc参考文档:

Subject:rfc2047

Connectrfc2045

sprintf(pOutBuff,"Subject: =?utf-8?B?%s?=/r/n",local_out_buf)//指定邮件主题为utf-8编码,当然也可以制定其他的,但是utf-8是现在字符编码都争相支持的最有前途的一种编码方式,所以为了最大可能的使得我们的代码通用性更强,最好是使用utf-8的编码方式.

sprintf(pOutBuff, "Content-Type: text/plain;/r/n/tcharset=/"utf-8/"/r/n");//指定邮件内容为utf-8编码。

对于那些不需要附件或者是附件不会包含中文的文件或音频视频或二进制等文件都不需要进行处理了,但是如果你的附件的文件名为中文的话这个时候也是需要和上面的方式一样的处理方法.

sprintf(pOutBuff,"Subject: =?utf-8?B?%s?=/r/n",local_out_buf)//一样的方法设置附件名的编码方式。

差点忘记说了,传送过去的需要你将原来的编码进行转换到你设置的编码方式去了,比如这里就需要你将原来的编码转到utf-8。

你可能感兴趣的:(编程,网络协议,文档,任务)