如何发送 HTML 电子邮件?

2022-08-31 08:26:38

我已使用 JMS 在我的 Web 应用程序中成功发送电子邮件,但结果仅以纯文本形式显示。我希望内容能够显示 html。我该怎么做?这大致是我所拥有的:

Message msg = new MimeMessage(mailSession);
try{
    msg.setSubject("Test Notification");
    msg.setRecipient(Message.RecipientType.TO, new InternetAddress(sentTo, false));
    String message = "<div style=\"color:red;\">BRIDGEYE</div>";
    msg.setText(message);
    msg.setSentDate(new Date());
    Transport.send(msg);
}catch(MessagingException me){
    logger.log(Level.SEVERE, "sendEmailNotification: {0}", me.getMessage());
}

答案 1

根据 Javadoc,MimeMessage#setText() 将默认的 mime 类型设置为 ,而您需要 。而是使用MimeMessage#setContent()代替。text/plaintext/html

message.setContent(someHtmlMessage, "text/html; charset=utf-8");

有关其他详细信息,请参阅:


答案 2

设置内容类型。看看这个方法

message.setContent("<h1>Hello</h1>", "text/html");

推荐