10
StringBuffer emailMessage = new StringBuffer("Dear Scott");
emailMessage.append("\r\n");
emailMessage.append("Sending mail over internet");

デバッガーで検査したときのフォーマットされたコンテンツは次のとおりです

Dear Scott,
Sending mail over internet

しかし、サンダーバードで受信すると、以下のような 1 行で完全なメッセージが表示されます。コンテンツを html として送信するときに改行文字が正しく解釈されない

 Dear Scott,Sending mail over internet

これがメッセージをhtmlとして送信する方法です

 MimeMessage msg = null;
 msg = new MimeMessage(mailSession);
 msg.setText(body, CHARSET_UTF_8, "html");

単にテキストを msg.setText(body, CHARSET_UTF_8) として送信すると、メッセージが正しい形式で表示されます。つまり、次の行に「インターネット経由でメールを送信しています」と表示されます。テキストを HTML として送信するときに改行文字が正しく解釈されない理由がわかりません。

4

2 に答える 2

20

HTML メールを送信しているため、従来のHTML ドキュメント (ファイルなど)と同様に、<br />代わりにを使用する必要があります。を使用する と、レンダリングされたコンテンツは新しい行を出力しませんが、メールのソース コードは出力します (逆も同様です)。\r\n.html\r\n

于 2012-11-13T09:55:53.543 に答える
11

HTML は改行文字を解釈しません。コンテンツ タイプを「html」に設定する場合は、「\r\n」の代わりに「<br/>」を使用します。

StringBuffer emailMessage = new StringBuffer("Dear Scott");
emailMessage.append("<br/>");
emailMessage.append("Sending mail over internet");
于 2012-11-13T09:50:56.743 に答える