私は Swift Mailer (バージョン 4.1.7、このトピックには関係ありません) を使用していますが、非常に基本的な質問があります。
「最新の」電子メール メッセージは、通常、コンテンツを 2 回繰り返します。1 回目は HTML で、ほとんどの人は派手なブラウザ ベースのメール閲覧アプリで読みます。もう 1 回は、古いまたは単純なリーダーを使用している人々のためにプレーン テキストです。Swift では、次のように両方のバージョンを簡単に作成できます。
$message->setBody($plaintextMessage, 'text/plain');
$message->addPart($htmlMessage, 'text/html');
私が抱えている問題は、に$plaintextMessage
既に存在する改行を無視しながら、プレーンテキストメッセージ (上記) が行に分割されていること$plaintextMessage
です。これは、メッセージに改行がない場合に適しています。例、これを与えると:
$plaintextMessage = 'This is a long-ish line, which we expect to be broken after about 72 characters. It is a good behavior, appropriate in most instances.';
それから私はこれを得る:
This is a long-ish line, which we expect to be broken after about 72 cha=
racters. It is a good behavior, appropriate in most instances.
これは問題ない、予想されるなどです。 ただし、次のようなことをすると:
$plaintextMessage = implode("\n", array('This is a series',
'of short lines',
'which should not be broken.',
'They include their own',
'newlines, which should be respected',
'and preserved'));
メッセージにはすでに完全に細かい改行があります。残念ながら、Swift はそれらを無視しているようで、これを出力します。
This is a series
of short lines
which should not be broke=
n.
They include their own
newlines, which should be respecte=
d
and preserved
もちろん、最新のメーラーが余分な改行や等号を削除することは理解していますが、プレーンテキスト バージョンのメッセージを使用することの要点は、この構文を理解していない古いメーラーを使用している人々が引き続き使用できるはずであるということです。あまり醜くなくメッセージを読むこと。
これはSwiftの設定ですか?これまでのところ、回避策として行の長さを非常に多くの文字数 (メッセージよりも長い) に設定して、Swift が改行を行わないようにすることしか考えていませんでした。ただし、Swift は、メッセージ内で既に改行が検出されるたびに、文字数をゼロにリセットする必要があるように思えます。この行動を誘発することは可能ですか?