Javamail:IMAP:邮件的内容类型

Javamail: IMAP: Content-type of mails

我们正在使用 JavaMail (IMAP) 来访问电子邮件。通常邮件的内容类型为“multipart/...”。今天我们获取了一封内容类型 application/pdf 的邮件,邮件是 base64 编码的 PDF。

我很惊讶他的可能。这是预期的行为吗?如果是,有没有办法确保仅包含附件的邮件将作为多部分邮件发送?

是的,这是可能的,并且相关标准(RFC-2045, RFC-2046 和其他标准)允许这样做。确保这种情况不会发生的唯一方法是控制发件人并确保他们的电子邮件结构符合您的要求。

如果您无法控制发件人,则需要准备好根据 RFC 处理所有在结构上有效的内容。

在最简单的形式中,电子邮件有一个信封和一个单独的部分。这通常是带有电子邮件 'body' 的内容类型 text/plain 或 text/html,但这不是必需的。在这种情况下,发件人仅发送了一个 PDF(作为正文或附件),并在内容类型为 application/pdf.

的顶级信封中发送

只有当一​​封邮件需要有多个部分(例如正文和一个或多个附件)时,它才会有一个多部分(例如multipart/mixed)(或更多嵌套的多部分)。