2

ユーザーの回答をログに記録し、ログファイルに採点するテストプログラムがあります。また、テストの管理者に適切にフォーマットされたhtmlメールでこれをメールで送信します。

ほとんどの場合、このシステムは機能します。しかし、私は、さまざまな電子メールクライアントがコードの一部を削除していることに気づきました。これはテーブルであるため、多くのコードは非常に反復的であり、削除されるセクションは各電子メールクライアントで毎回同じです(OutlookとGmailは私がテストしたものです)。たとえば、テーブルのセクションがある場合:

<tr><td style="background:#a66;text-align:center">This is the answer</td></tr>

それからそれは次のように出てくるかもしれません:

<tr><td style="backgrouter">This is the answer</td></tr>

そして、私はそれが各ファイルのどこでこれを行うかの間の相関関係を見つけることができません。時には終わり近く、時には始まり近く。場合によっては、テストが特に長かった場合、電子メールを終了することすらできません。

私のphpは、サーバー上のログファイルにまったく同じhtmlを出力していますが、それは常に完璧です。

どうしたの?どうすれば修正できますか?

4

4 に答える 4

1

これは、MIME メールの 1 行あたり 998 文字の制限によるものだと思います。

詳細については、以下の投稿を参照してください。

RFC 2045 で定義されているように、MIME セクションの行の長さ制限が 76 であることの理由は? (appleleafによる回答を参照)

長い行の HTML セーフ ラッピング

私の解決策は、HTML タグの間に「\r\n」を追加して、1 行あたり 998 文字を超えないようにすることです。これは私にとってはうまくいきます。

于 2016-11-01T07:34:05.597 に答える
0

私が試すことができる 1 つのことは!important、各 CSS ステートメントに を追加することです。

<td style="background:#a66 !important;text-align:center !important">

ああ、ちょうどあなたがクロージングを逃していることに気づきました;.

于 2012-10-22T22:43:08.480 に答える
0

それは変です!

わかりました、まず、すべてのスタイルの間隔を空けて終了させて​​みましたか? 例えば:

<tr><td style="background-color: #aa6666; text-align: center;">

第二に、Gmail が検出している奇妙な HTML 解釈かもしれませんが、これが発生する理由は思いつきません (たとえば、スタイル名や予約済みの関数名など)。

そうでなければ、私は困惑しています。メールの HTML が yahoo メールのレイアウトを壊す yahoo メールで、これが起こるのを見たことがあります...

CSS クラスを使用して、スタイル タグ内でスタイルを設定したくなるでしょう。私はそれらが壊れているのを見たことがありません。

于 2012-10-22T22:44:02.227 に答える
0

あなたの問題にはもっと深い問題があると思います。

これらのクライアントは、データを処理する方法が不明確であり、同じメールドレスから繰り返し送信されたメールを、他のメールからの引用であるかのようにレンダリングすることになります。

メールの html の一貫性を確認し、サポートされているメールの html を読むことをお勧めします。

また、メールのヘッダーに、それが HTML 形式のメールであり、プレーン テキストではないことが示されていることを確認してください。ヘッダーのフォーマットも重要です。コマンドは utf8 です。

于 2012-10-22T22:47:15.033 に答える