如何使用纯文本和HTML文本发送邮件,以便每个邮件阅读器可以选择适合它的格式?

来自http://www.oracle.com/technetwork/java/faq-135477.html#sendmpa :

您将要发送MIME多部分/替代消息。 您构造此类消息的方式与构造多部分/混合消息的方式基本相同,使用使用新MimeMultipart(“alternative”)构造的MimeMultipart对象。 然后,将text / plain body部分作为multpart中的第一部分插入,并将text / html body部分作为multipart中的第二部分插入。 您需要自己构建plain和html部分以获得适当的内容。 有关此类消息的结构的详细信息,请参阅RFC2046。

有人可以给我看一些示例代码吗?

这是我自己的代码的一部分:

final Message msg = new MimeMessage(session); msg.setFrom(new InternetAddress(senderAddress, senderDisplayName)); msg.addRecipient(Message.RecipientType.TO, new InternetAddress(m.getRecipient(), m.getRecipientDisplayName())); msg.setSubject(m.getSubject()); // Unformatted text version final MimeBodyPart textPart = new MimeBodyPart(); textPart.setContent(m.getText(), "text/plain"); // HTML version final MimeBodyPart htmlPart = new MimeBodyPart(); htmlPart.setContent(m.getHtml(), "text/html"); // Create the Multipart. Add BodyParts to it. final Multipart mp = new MimeMultipart("alternative"); mp.addBodyPart(textPart); mp.addBodyPart(htmlPart); // Set Multipart as the message's content msg.setContent(mp); LOGGER.log(Level.FINEST, "Sending email {0}", m); Transport.send(msg); 

其中m是我自己class级的一个实例。