使用Java发送带有pdf附件的HTML电子邮件

时间:2011-01-31 16:39:05

标签: java email attachment apache-commons-email

我正在尝试使用Java发送电子邮件,我正在使用apache commons电子邮件库。

我无法发送包含正文的电子邮件作为HTML和附件作为PDF(或任何文件类型)

如果我使用EmailAttachment()并将其添加到HtmlEmail对象,我的邮件看起来像两个附件。第一个用于HTML,第二个用于PDF。

有没有办法做到这一点?

非常感谢!

2 个答案:

答案 0 :(得分:0)

对于作为文本和HTML发送的消息和/或优先发送文本电子邮件的邮件客户端(在接收端),这听起来是相对正常的行为。我怀疑这是由于客户端的行为,你将无法改变(但在正面所有 HTML电子邮件会像这样)。

问题是,HTML电子邮件(带有文本组件)确实是一个多部分消息,HTML内容是“额外”部分之一。您实际上从服务器端发送的所有电子邮件都是一堆文本,由接收邮件客户端决定如何显示它。在这方面,客户端将HTML显示为附件并没有错 - 就像智能客户端推断HTML不是“真正的”附件并激活文本之间的某种切换一样没有错和HTML(而不是将其显示为附件)。

如果您确信客户端通常会以这种智能方式处理HTML,那么:

  1. 您必须提及您正在使用哪个客户端进行检查,因为发送本身并不是真正的问题;和
  2. 您可能希望查看“有效”的电子邮件原始来源和未发送的电子邮件,以确定触发不同呈现模式的关键差异。根据客户端软件的不同,这可能与任何事情有关 - 但我会特别注意部分MIME类型和字符集。

答案 1 :(得分:0)

我试过apache commons mail v1.2而不是1.1。

有效!?

Andrej,非常感谢你的帮助。