#java #jakarta-mail #eml #email-forwarding
#java #джакарта-почта #eml #пересылка электронной почты
Вопрос:
По сути, я пытаюсь структурировать пересылку электронной почты, а затем преобразовать ее в EML-файл.Но исходный объект сообщения msg
отображается как вложение вместо обычного сообщения в EML
файле. Я пробовал setContent
и getDataHandler
способы добавить его в составное электронное письмо, но безуспешно. Я действительно признателен, если кто-нибудь может мне помочь в этом.
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 ....");
Ответ №1:
Когда вы добавляете messageBodyPart
set Part::setDisposition в INLINE.
...
messageBodyPart = new MimeBodyPart();
messageBodyPart.setDataHandler(msg.getDataHandler());
messageBodyPart.setDisposition(Part.INLINE); //<-- Not an attachment.
//messageBodyPart.setContent(msg, "message/rfc822");
...