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

时间:2014-03-19 20:32:41

标签: java javamail

我一直在发送来自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()方法,这似乎是你唯一要做的事情。

1 个答案:

答案 0 :(得分:6)

您可以尝试以下操作:

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);

希望它可以帮到你!