在javamail中设置"mail.restraint_Mime.parm_Folding"

我确实使用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.restraint_Mime.parm_Folding"

如何在javamail中设置它?

RFC

推荐答案属性是针对雷鸟的,它不在RFC中。

根据this Thunderbird article, Outlook doesn't support RFC 2231,哪个Java Mail用来编码FileName参数。您可以通过将JavaMail System property "mail.mime.encodeparameters"设置为"False"来禁用RFC 2231编码。您可能希望将系统属性"mail.lime.encodefilename"设置为"true"以使用Outlook支持的non-standard filename encoding。

相关文章