将 MimeMessage 附加到另一个 MimeMessage
Posted
技术标签:
【中文标题】将 MimeMessage 附加到另一个 MimeMessage【英文标题】:Attach a MimeMessage to another MimeMessage 【发布时间】:2019-04-10 02:52:32 【问题描述】:我有一个 MimeMessage A,想添加另一个 MimeMessage B 作为附件。
我的(不工作)尝试:
MimeBodyPart mimeBodyPart = new MimeBodyPart();
mimeBodyPart.setContent(base64mimeMessage, "message/rfc822");
mimeBodyPart.setHeader("Content-Transfer-Encoding", "base64");
multipart.addBodyPart(mimeBodyPart);
当我尝试签名或加密结果时,这会导致java.io.IOException: unsupported object at com.sun.mail.handlers.message_rfc822.writeTo
。
【问题讨论】:
【参考方案1】:也许它对其他人有帮助,所以这是一个可行的解决方案
MimeBodyPart mimeBodyPart = new MimeBodyPart();
DataSource dataSource = new ByteArrayDataSource(Base64.decode(itemAttachment.getMimeContent(), Base64.DEFAULT), "message/rfc822");
mimeBodyPart.setDataHandler(new DataHandler(dataSource));
multipart.addBodyPart(mimeBodyPart);
【讨论】:
【参考方案2】:Session session = Session.getInstance(new Properties());
MimeMessage mimeMessageToAttach = new MimeMessage(session);
MimeBodyPart attachment = new MimeBodyPart();
String contentType = "message/rfc822; name=mymail.eml";
attachment.setContent(mimeMessageToAttach, contentType);
MimeMultipart multipart = new MimeMultipart();
multipart.addBodyPart(mimeBodyPart);
【讨论】:
以上是关于将 MimeMessage 附加到另一个 MimeMessage的主要内容,如果未能解决你的问题,请参考以下文章
如何将 msg 中的附件附加到 Mime 以在 Python 中作为电子邮件发送?