0

希望只是一个快速的。

本质上,我使用的是 apache commons email 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);

4

1 回答 1

0

我使用 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()来克服这个问题。

于 2015-05-08T10:51:11.730 回答