java - 在 javamail 中设置 "mail.strictly_mime.parm_folding"

标签 java email jakarta-mail email-attachments

我确实使用 javamail 发送带有长文件名附件的邮件。 javamail 根据更新的 RFC 进行操作,并在邮件标题的两行中跨越文件名,如下例所示:

------=_Part_0_978693914.1433356404377
Content-Disposition: ATTACHMENT;
    filename*0="=?UTF-8?Q?arquivo_com_nome_grande_e_acentua=C3=A7=C3=A3o.png\"; f";
    filename*1="ilename*1=\"?="
Content-Type: APPLICATION/OCTET-STREAM;
    name*0="=?UTF-8?Q?arquivo_com_nome_grande_e_acentua=C3=A7=C3=A3o.png\"; n";
    name*1="ame*1=\"?="
Content-Transfer-Encoding: BASE64

像 Outlook 这样的邮件客户端不理解它,所以我需要让 javamail 不要将文件名分成两行。

阅读 RFC,我发现一个属性说不要拆分: “mail.strictly_mime.parm_folding”

如何在javamail中设置?

最佳答案

mail.strictly_mime.parm_folding 属性适用于 Thunderbird,它不在 RFC 中。

根据 this Thunderbird article, Outlook doesn't support RFC 2231 ,JavaMail 使用它来对文件名参数进行编码。您可以通过设置 JavaMail System property "mail.mime.encodeparameters" 来禁用 RFC 2231 编码为“假”。您可能希望将系统属性“mail.mime.encodefilename”设置为“true”以使用 non-standard filename encoding Outlook 支持。

关于java - 在 javamail 中设置 "mail.strictly_mime.parm_folding",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30628139/

相关文章:

java - HBase 独立连接失败(创建表失败)

c# - 邮件错误 :The SMTP server requires a secure connection or the client was not authenticated. 服务器响应为 : 5. 5.1 需要身份验证

php - Mail-Tester.com : Freemail in Reply-To, 但不是来自

php - MySQL如何让值过期?

JavaMail : Java. awt.datatransfer.Transferable 不存在

java - 使用 IMAP 向服务器发送电子邮件时身份验证失败

java - 如何在允许同时读取线程的同时同步 HashMap?

java - 在java中获取HashMap中的变量类型

java - 无法在 RStudio 中加载 rJava

java - 从带有附件的 eml 文件发送邮件