在Outlook中收到电子邮件时附件名称不正确
问题描述:
我通过javax.mail发送带附件的电子邮件。 当有西里尔字母或重音符号(当只有标准的拉丁符号时,一切正常)时,MS Outlook显示附件名称,如“ATTxxx.xxx”。当我使用网络界面时,名称是正确的。在Outlook中收到电子邮件时附件名称不正确
添加附件:
private void attachFile(DataSource source, String attachmentName)
throws MessagingException, UnsupportedEncodingException {
MimeBodyPart filePart = new MimeBodyPart();
filePart.setDataHandler(new DataHandler(source));
filePart.setFileName(MimeUtility.encodeText(attachmentName, charsetUTF, null));
filePart.setHeader("Content-Transfer-Encoding", "base64");
mp.addBodyPart(filePart);
}
我GOOGLE了很多,但还没有找到任何解决办法。
答
解决方案是使用最新版本的javax.mail - 1.5.6,感谢Bill Shannon。
您使用的是什么版本的JavaMail?而不是你自己的编码文件名,可以设置['mail.mime.encodefilename'](https://javamail.java.net/nonav/docs/api/javax/mail/internet/package-summary.html#mail .mime.encodefilename)属性。您可能还需要设置['mail.mime.encodeparameters'](https://javamail.java.net/nonav/docs/api/javax/mail/internet/package-summary.html#mail.mime.encodeparameters )属性为false以禁用RFC 2231编码,而旧版本的Outlook不理解。 –
谢谢!我的问题解决了。现在我使用最新版本的javax.mail - 1.5.0-b01,一切正常。你能写这个答案吗? –
最新的是1.5.6。 –