3

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

我使用 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();

问题是,另一端的人说“标头信息的 Content-Transfer-Encoding 值为“7bit”,它需要“引用打印”。

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

4

1 回答 1

1

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

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

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

但它可能会因此损坏邮件的其他部分。

于 2013-08-01T07:09:23.293 回答