希望只有一个快速。
本质上,我正在使用Apache Commons电子邮件v1.3.3,并且正在尝试发送HTML格式电子邮件。我遵循了他们的用户指南来执行此操作,但是我正在收到的电子邮件只是在我查看的任何客户端中都没有解决HTML,所有这些都支持HTML。
这是代码的片段,本质上是发送它的:
HtmlEmail email = new HtmlEmail();
email.setSubject(subject);
email.setTo(getRecipients(recipients));
email.setHtmlMsg(htmlMsg);
email.setTextMsg(alternativeMsg);
try {
this.mailServer.send(email);
}
catch (EmailException e) {
LOGGER.error("An error occurred sending email. ", e);
}
现在说html就是这样:
<html>some text in html <p> blah blah blah </html>
我只是收到上面的纯文本内容。
有人可以突出显示我缺少的东西吗?
谢谢,
编辑:
使用了调试功能,我可以看到内容类型仍然是纯正/文本。为了解决我的问题,我做到了:
email.setContent(htmlMsg, EmailConstants.TEXT_HTML);
我已经使用了Commons-Email库已有一段时间了。我认为,您使用setMsg()
方法而不是setHtmlMsg()
设置消息。重写下面的代码,并且应该正常工作。
HtmlEmail email = new HtmlEmail();
email.setSubject(subject);
email.setTo(getRecipients(recipients));
email.setMsg(htmlMsg);
try {
this.mailServer.send(email);
}
catch (EmailException e) {
LOGGER.error("An error occurred sending email. ", e);
}
我处理了此HTML电子邮件的另一个问题。该库将<pre>
标签添加到我们的消息中,这使样式和对齐方式有些奇怪。我必须覆盖setMsg()
才能克服这个问题。