当前位置:开发者网络 >> 技术教程 >> JSP教程 >> 邮件相关 >> 内容
精彩推荐
分类最新教程
分类热点教程
  
关于JavaMail中发送中文附件标题乱码的说明
作者:未知
日期:2004-11-03
人气:
投稿:snow(转贴)
来源:未知
字体:
收藏:加入浏览器收藏
以下正文:
以前在CSDN上发过一篇帖子说可能是一个BUG, 本想直接回复那个帖子, 可能由于 CSDN的改版? 那篇帖子我现在无法回复, 只能在这里做一个说明了.

收到SUN工程师的回复, 给了我一个相应的FAQ链接, 实在抱歉当时没有去查询FAQ:-)
http://java.sun.com/products/javamail/FAQ.html#encodefilename

原因是在MIME的相应规范中(RFC2047等)说明了附件标题必须是US-ASCII字符, 所以在发送中文标题的附件时需要编码成US-ASCII字符, 有两种编码方式: B (BASE64), Q (Quoted-Printable), 这些方法在MimeUtility里都已经做了封装, 所以在发送附件时使用方法:
setFileName(MimeUtility.encodeText(fileName, "GBK"));

不过现在邮件系统对此处实现的不是很一致, 所以可能有个别邮件系统收到的是乱码, 可根据情况自己选择相应的编码方式.
如以前提过的直接取ISO8859-1的字节:setFileName(new String(file.getName().getBytes(), "ISO8859-1"));


相关文章: