gpt4 book ai didi

java - 将 MimeMessage 对象消息作为常规转发格式转发,而不是 EML 文件中的附件

转载 作者:太空宇宙 更新时间:2023-11-04 09:42:59 25 4
gpt4 key购买 nike

基本上,我正在尝试构建转发电子邮件的结构,然后将其转换为 EML 文件。但是原始消息对象 msg 呈现为附件,而不是 EML 文件中的普通消息。我尝试过 setContentgetDataHandler 方法将其添加到多部分电子邮件中,但没有成功。如果有人能帮助我解决这个问题,我真的很感激。

P.S msg 对象实际内容采用 text/html 格式,而不是 text/plain 格式。

谢谢。

       MimeMessage forward = new MimeMessage(mailSession);

// Fill in header
forward.setSubject("Fwd: " + msg.getSubject());
forward.setFrom(new InternetAddress(from));
forward.addRecipient(Message.RecipientType.TO,new InternetAddress("toemail@ibm.com"));
forward.addRecipient(Message.RecipientType.CC,new InternetAddress("ccemail@gmail.com"));


// Create your new message part
MimeBodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(
"<html><body><h1>This is actual message embedded in HTML tags</h1></body></html>",
"text/html");

// Create a multi-part to combine the parts
MimeMultipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);

// Create and fill part for the forwarded content
messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(msg.getDataHandler());
//messageBodyPart.setContent(msg, "message/rfc822");

// Add part to multi part
multipart.addBodyPart(messageBodyPart);

// Associate multi-part with message
forward.setContent(multipart);



// Send message
Transport.send((Message)forward);
System.out.println("message forwarded ....");

最佳答案

当您添加 messageBodyPartPart::setDisposition 时至 INLINE .

 ...
messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(msg.getDataHandler());
messageBodyPart.setDisposition(Part.INLINE); //<-- Not an attachment.
//messageBodyPart.setContent(msg, "message/rfc822");
...

关于java - 将 MimeMessage 对象消息作为常规转发格式转发,而不是 EML 文件中的附件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55754955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com