10

私はhtmlメールのことを深く掘り下げていますが、最終的に、迷惑な改行に関する未解決の問題がまだあります:/

GMail や Outlook は、タグの途中で改行することがよくあります。その結果、ルック アンド フィールが完全に壊れてしまいます. ..

m</strong><br/>Passwort: <
strong>20o3a7

これは、私の PHPMailer コードによって生成された壊れた電子メールの例です。

今、私は会社の電子メール、完璧なスタイルのニュースレターに魅了されました..そこで私は次のようなコードを見ました:

<table width=3D"100%" cellspacin=
g=3D"0" border=3D"0" cellpadding=3D"0">

これは、この奇妙な電子メールのほぼすべての行で見られます -> タグまたはパラメータ単語の途中にある場合でも、常にどの行でも「=」で終わります..そしてそれは完全に機能しています! どのように?この改行は、電子メール クライアントに到達する前に生成されるように思えますが、これは私の憶測に過ぎません...

次のような正しい HTML メールを作成する方法について、非常に優れた記事を見つけることができます。

http://24ways.org/2009/rock-solid-html-emails

しかし、誰もこの厄介な改行問題について何も書いていませんが、この問題を抱えているのが私だけだとは信じられません... :/

4

3 に答える 3

13

簡単な回避策

$body = str_replace("<","\r\n<", $body);

すべての HTML タグは新しい行から始まり、次のようになります。

m
</strong>
<br/>Passwort: 
<strong>20o3a7

もう 1 つのことは、私PHPMailerは多くのプロジェクトで使用し、すべてのメール クライアントに数千通の電子メールを送信しましたが、その問題を経験したことはありません。コードに問題がないことを確認してください。(テキスト エディタがその行を折り返しているのではないでしょうか?)

于 2012-08-31T13:26:01.830 に答える
2

<table width=3D"100%" cellspacing=3D"0" border=3D"0" cellpadding=

これは、HTML メールで一般的な引用印刷可能エンコーディングと呼ばれます。たとえば、'=3D' は '=' を表します。

あなたの問題に関して:私には決して起こりませんでした。ソースを見ることができずにデバッグすることは困難です。しかし、とにかく解決策を得たようです。:)

于 2012-08-31T20:59:43.233 に答える