繁体   English   中英

在Java中以文本/纯文本形式发送多部分消息,而不是Java中的多部分/替代

[英]Multipart message sent as text/plain instead multipart/alternative in java

我正在发送一条消息,下面是我的代码:

Message message = new MimeMessage(session);
Multipart multiPart = new MimeMultipart("alternative");

try {

MimeBodyPart textPart = new MimeBodyPart();
textPart.setText(text, "utf-8");

MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(html, "text/html; charset=utf-8");

multiPart.addBodyPart(htmlPart);
multiPart.addBodyPart(textPart);
message.setContent(multiPart);
transport.send(message);

} catch (AddressException e) {
    e.printStackTrace();
    System.out.println("Error: "+e.getMessage());

}

现在,当我在Outlook中收到它时,它将显示为文本/纯文本

有任何想法吗?

我终于找到了解决这个问题的方法。 显然,有时您需要保存更改以使消息以多部分/替代方式发送。 我指的是:

https://docs.oracle.com/javaee/6/api/javax/mail/Message.html#saveChanges()

所以现在我的代码是:

Message message = new MimeMessage(session);
Multipart multiPart = new MimeMultipart("alternative");

try {

MimeBodyPart textPart = new MimeBodyPart();
textPart.setText(text, "utf-8");

MimeBodyPart htmlPart = new MimeBodyPart();
htmlPart.setContent(html, "text/html; charset=utf-8");

multiPart.addBodyPart(htmlPart);
multiPart.addBodyPart(textPart);
message.setContent(multiPart);
message.saveChanges();
transport.send(message);

} catch (AddressException e) {
    e.printStackTrace();
    System.out.println("Error: "+e.getMessage());

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM