2022年使用javamail包收发中文邮件的编码,解码问题以及解决方法 .pdf
《2022年使用javamail包收发中文邮件的编码,解码问题以及解决方法 .pdf》由会员分享,可在线阅读,更多相关《2022年使用javamail包收发中文邮件的编码,解码问题以及解决方法 .pdf(4页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、使用 java mail 包收发中文邮件的编码,解码问题以及解决方法编码邮件头 (参见 RFC822,RFC2047)只能包含US-ASCII 字符。邮件头中任何包含非US-ASCII字符的部分必须进行编码,使其只包含US-ASCII 字符。所以使用java mail 发送中文邮件必须经过编码,否则别人收到你的邮件只能是乱码一堆。不过使用java mail 包的解决方法很简单,用它自带的MimeUtility工具中 encode 开头的方法(如encodeText)对中文信息进行编码就可以了。例子:MimeMessage mimeMsg = new MimeMessage(mailSessio
2、n); / 让javamail决 定 用 什 么 方 式 来 编 码, 编 码 内 容 的 字 符 集 是 系 统 字 符 集mimeMsg.setSubject( MimeUtility.encodeText( Subject) ); /使用指定的base64方式编码 ,并指定编码内容的字符集是gb2312 mimeMsg.setSubject( MimeUtility.encodeText( Subject,” gb2312 ” , ” B” );通常对邮件头的编码方式有2 种,一种是 base64方式编码,一种是QP(quoted-printable)方式编码, javamail 根据具
3、体情况来选择编码方式。如“ txt 测试”编码后内容如下:=?GBK?Q?Txt=B2=E2=CA=D4 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 里面有个 =?GBK?Q?,GBK 表示的是内容的字符集,?Q?表示的是以QP 方式编码的,后面紧跟的才是编码后的中文字符。所以用MimeUtility工具编码后的信息里包含了编码方式的信息。邮件的正文也要进行编码,但它不能用MimeUtility里的方法来编码。邮件正文的编码
4、方式的信息是要放在Content-Transfer-Encoding 这个邮件头参数中的, 而 MimeUtility里面的方法是将编码方式的信息放在编码后的正文内容中。所以如果你对正文也用MimeUtility进行处理,那么其他邮件程序就不会正常显示你编码的邮件,因为其他邮件软件如outlook,foxmail只会根据Content-Transfer-Encoding 这个里面的信息来对邮件正文进行解码。其实, 邮件正文部分的编码javamail 已经自动帮你做了,当你发送邮件的时候,它会自己决定编码方式,并把编码方式的信息放入Content-Transfer-Encoding 这个邮件头参
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年使用javamail包收发中文邮件的编码 解码问题以及解决方法 2022 使用 javamail 收发 中文 邮件 编码 解码 问题 以及 解决方法
限制150内