Apache Commons Email,如何通过Content-Transfer-Type将附件发送电子邮件为quoted-printable?

时间:2012-10-30 17:06:17

标签: java email javamail apache-commons-email

我有一个应用程序通过发送带附件的电子邮件与其他人的服务器通信。

我使用Apache Commons Email发送带有附件的电子邮件:

MultiPartEmail email = new MultiPartEmail();
email.setHostName(sHostName);
email.addTo("bob@bob.com");
email.addFrom("andy@andy.com");
email.setSubject("the subject");
email.setMsg("the message");

byte[] documentFile = /* ... */;
String filename = "my file.pdf";
String description = "this is my file";

email.attach(new ByteArrayDataSource(myPDF, "application/pdf"), filename, description, EmailAttachment.ATTACHMENT);

email.send();

问题是,另一端的人说“标题信息的内容传输编码值为”7bit“,它需要”引用 - 可打印“。

我的问题是,如何进行此更改以便以适当的方式附加文件?

罗布

1 个答案:

答案 0 :(得分:2)

Commons email根据附件的内容决定使用哪种编码,有关相关讨论,请参阅http://thecarlhall.wordpress.com/2010/09/01/setting-quoted-printable-in-a-commons-email-body-part/。此外,基础java邮件似乎根据javadoc自动执行此操作。

博客文章指出您可以尝试使用

email.addHeader("Content-transfer-encoding", "quoted-printable");

但是它可能会破坏邮件的其他部分。