0

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

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

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

有没有办法做到这一点?

非常感谢!

4

2 回答 2

0

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

有用!?

安德烈,顺便说一句,非常感谢您的帮助。

于 2011-02-03T17:09:01.533 回答
0

对于以文本和 HTML 格式发送的消息和/或喜欢文本电子邮件的邮件客户端(在接收端)来说,这听起来是相对正常的行为。我怀疑这是由于客户端的行为造成的,您将无法更改(但从好的方面来说,所有HTML 电子邮件都会像这样出现)。

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

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

  1. 您必须提及您正在使用哪个客户端来检查,因为这并不是发送本身的问题;和
  2. 您可能想查看“有效”的电子邮件的原始来源和无效的电子邮件,以确定触发不同呈现模式的关键差异是什么。根据客户端软件,这几乎可以是任何东西——但我会特别注意部分 MIME 类型和字符集。
于 2011-01-31T16:56:48.317 回答