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 に答える