我一直在从 Java 发送简单的电子邮件,没有问题,但我现在尝试发送一封 html 电子邮件,如下所示:
MimeMessage message = new MimeMessage(Email.getSession());
message.setFrom(new InternetAddress("[email protected]"));
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");
or
message.setContent(msg, "text/html; charset=utf-8");
避免setText方法,你只需要setContent。
应该是这样的:
MimeMessage message = new MimeMessage(Email.getSession());
message.setFrom(new InternetAddress("[email protected]"));
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);
希望对您有帮助!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)