【问题标题】:Incorrect attachment names when e-mail is received in Outlook在 Outlook 中收到电子邮件时,附件名称不正确
【发布时间】:2017-03-06 20:23:38
【问题描述】:

我正在通过 javax.mail 发送带有附件的电子邮件。 当有西里尔字母或重音符号时,MS Outlook 会显示诸如“ATTxxx.xxx”之类的附件名称(当只有标准拉丁符号时,一切正常)。当我使用网络界面时,名称是正确的。

添加附件:

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);
    }

我搜索了很多,但没有找到任何解决方案。

【问题讨论】:

  • 您使用的是什么版本的 JavaMail?您可以设置mail.mime.encodefilename 属性,而不是自己编码文件名。您可能还需要将 mail.mime.encodeparameters 属性设置为 false 以禁用 RFC 2231 编码,旧版本的 Outlook 无法识别。
  • 谢谢!我的问题解决了。现在我使用最新版本的 javax.mail - 1.5.0-b01 并且一切正常。你能把这个写成答案吗?
  • 最新的是1.5.6。
  • 是的,你写的是 1.5.6

标签: java outlook jakarta-mail


【解决方案1】:

解决方案是使用最新版本的 javax.mail - 1.5.6,感谢 Bill Shannon。

【讨论】:

    猜你喜欢
    • 2010-10-15
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-05
    • 1970-01-01
    • 2019-03-18
    • 1970-01-01
    相关资源
    最近更新 更多