××××用JavaMail收发邮件中的附件为中文名,结果接收时是乱码,请知道的朋友解答!

ltf_ty 2003-06-18 06:07:11
显示附件名为?gb2312?B?06LOxLjoLnR4dA==?=,怎么解析出中文名?
请知道的朋友不吝告知!谢谢!
...全文
31 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ltf_ty 2003-06-26
  • 打赏
  • 举报
回复
知道了,fds 是FileDataSource
可以到JB的帮助中查说明。

谢谢baliok(奔奔) ,我的问题解决了!
ltf_ty 2003-06-26
  • 打赏
  • 举报
回复
to baliok(奔奔)
javax.mail.internet.MimeUtility 说明在哪里有啊?
另外这句
attachmentPart.setFileName(MimeUtility.encodeText(fds.getName()));
中的fds是什么啊?

望赐教,谢谢!
ltf_ty 2003-06-24
  • 打赏
  • 举报
回复
to : teva(用正确的理论引导人)
那个帖子我早找到了,用那个方法代替getFileName,结果接到的结果错的更厉害了!
我找到一个ICEMaile的源码,用那个程序发送接收都没问题,正在研究,
如果成功,我会把方法贴出来。

如果你知道其他的方法,忘不吝赐教,谢谢!

to baliok(奔奔)
发送和接收的方法都是改的Sun的JavaMail文档中的例子,
查到一篇文章说是JavaMail的一个Bug,需要改JavaMail的一个函数的一行源码,然后替换编译好的.class文件。但我找不到JavaMail的源码

这几天找到ICEMail的源码,正在研究,感谢关注。



过几天结贴
baliok 2003-06-24
  • 打赏
  • 举报
回复
这个问题我知道是怎么回事了,这不是javamail的bug,是RFC822 和2047间字符定义不同导致的,你看一下javax.mail.internet.MimeUtility 说明就明白了,程序应该这么改:

String attachmentFile = "XXXXXXXX";
//u can get correct attachment filename with this method ^&^
attachmentFile = MimeUtility.decodeText(attachmentFile);

//发邮件的时候这样设置附件名
attachmentPart.setFileName(MimeUtility.encodeText(fds.getName()));

baliok 2003-06-24
  • 打赏
  • 举报
回复
怪不得,用Javamail中的setFileName()对于非ASCII字符会有问题,据烦。
teva 2003-06-20
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=12953
baliok 2003-06-20
  • 打赏
  • 举报
回复
你邮件中的附件是怎么发送的?尤其是附件的文件名是如何指定的?需要贴出代码

50,530

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧