设置附件文件名的代码如下:
FileDataSource fds = new FileDataSource(strPath);
mbp.setDataHandler(new DataHandler(fds));
try{
mbp.setFileName(MimeUtility.encodeText(FileName, "UTF-8 ",null));
}
catch(Exception ie){
log.error( "sendMail ", " ", ie.toString());
}
在文件名有中文的情况下,163和gmail的邮箱接收的附件都能正确显示文件名,只有yahoo邮箱附件文件名中文显示为乱码。实在不知道怎么解决,不知道谁遇到过类似情况。
------解决方案--------------------
GBK试一下
------解决方案--------------------
但我的问题是用javamail发送带附件的邮件,而不是用javamail收邮件。发送到yahoo邮箱后,去yahoo的网站进入邮箱打开发现附件是乱码。
改成GBK后用yahoo.com.cn的邮箱接收后确实正常了。但是登不上yahoo.com.tw,没法测试,因为是在给台湾公司做外包。不知道发yahoo.com.tw的邮箱是不是又需要改成BIG5。