如何使用Java邮件发送html消息

我一直在发送来自Java的最好的电子邮件没有问题,但我现在正在尝试发送一个html如下:

MimeMessage message = new MimeMessage(Email.getSession()); message.setFrom(new InternetAddress("support@jthink.net")); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to, true)); message.setSubject(subject); message.setContent(msg, "text/html"); message.setText(msg); message.saveChanges(); Transport.send(message); 

然而,当我在我的客户端收到它时,它接收它作为纯文本电子邮件,即它显示所有的html标签而不是它们用于格式化,我检查了电子邮件标题,它确实说

 Content-Type: text/plain; charset=us-ascii 

在邮件标题中

但为什么因为我将“text / html”传递给setContent()方法,这似乎是你唯一要做的事情。

您可以尝试以下方法:

 message.setText(msg, "utf-8", "html"); 

要么

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

避免使用setText方法,只需要setContent。

它应该是这样的:

 MimeMessage message = new MimeMessage(Email.getSession()); message.setFrom(new InternetAddress("support@jthink.net")); message.addRecipient(Message.RecipientType.TO, new InternetAddress(to, true)); message.setSubject(subject); message.setContent(msg, "text/html; charset=utf-8"); message.saveChanges(); Transport.send(message); 

希望它能帮到你!