如何将MimeMultipart添加到另一个?

时间:2015-04-09 22:03:50

标签: java email javax.mail

这可能是一个非常愚蠢的问题,但我正在尝试撰写电子邮件,例如suggested here

  • 多部分/混合
    • 多部分/替代
      • text / html的
      • 文本/纯
    • attachment 1
    • attachment 2

所以我有

MimeMultipart altPart = new MimeMultipart("alternative");

BodyPart textPart = new MimeBodyPart();
textPart.setContent("someText", "text/plain");
altPart.addBodyPart(textPart);

BodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent("someHtml", "text/html");
altPart.addBodyPart(htmlPart);

MimeMultipart mixedPart = new MimeMultipart("multipart/mixed");

并且需要将altPart添加到mixedPart,但我不能,因为唯一的添加方法只接受BodyPart。 WTF?

请注意,与here不同,我不会混淆包裹。

1 个答案:

答案 0 :(得分:2)

您需要使用MimeMultipart方法将MimeBodyPart包裹在另一个MimeBodyPart.setContent(Multipart mp)中。然后,您可以将MimeBodyPart添加到mixedPart对象:

MimeMultipart alternativeMultipart = new MimeMultipart("alternative");

BodyPart textPart = new MimeBodyPart();
textPart.setContent("someText", "text/plain");
alternativeMultipart.addBodyPart(textPart);

BodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent("someHtml", "text/html");
alternativeMultipart.addBodyPart(htmlPart);

MimeBodyPart alternativeBodyPart = new MimeBodyPart();
alternativeBodyPart.setContent(alternativeMultipart);

MimeMultipart mixedMultipart = new MimeMultipart("mixed");
mixedMultipart.addBodyPart(alternativeBodyPart);

MimeBodyPart textPart1 = new MimeBodyPart();
textPart1.setContent("someOtherText", "text/plain");
mixedMultipart.addBodyPart(textPart1);
相关问题