HTML 電子メール送信時の「引用符で囲まれた印刷可能な行が 76 文字を超えています」という警告
質問
VB.NET アプリケーションに HTML 電子メール (この場合は、パスワードを忘れたリマインダー) を送信するコードをいくつか書きました。
電子メールをテストすると、スパム フィルターに食い込まれてしまいます。スコアが低いことの 1 つは、次の問題によるものです。
MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars
電子メールのソースを確認し、76 文字を超える各行を CR+LF を挟んで 2 行に分割しましたが、問題は解決していません。
誰か私を正しい方向に向けてくれませんか?
ありがとう!
解決
Quoted printable は 8 ビット文字を「={HEX-Code}」に拡張するため、メッセージが長くなります。もしかしたら、ちょうどこの限界に達しつつあるのでしょうか?
たとえば 70 文字でメッセージを区切ろうとしたことがありますか?これにより、1 行に数文字分のスペースが確保されるはずです。
または、電子メールを Base64 でエンコードするだけです。すべてのメール クライアントがそれを処理できます。
または、Content-Transfer-Encoding を 8 ビットに設定し、データをエンコードせずに送信します。最近、8 ビット バイトを処理できないメール サーバーを私は知りません。
他のヒント
これは、System.Net.Mail.MailMessage の Quoted-Printable エンコーディングの実装におけるバグであり、長い間存在していましたが、.Net 4 Beta 2 の時点では修正されているようです。
回避策の 1 つは、代わりに Base64 エンコーディングを使用することです (ただし、このような人間が判読できないエンコーディングでプレーンテキストの MIME 部分を送信するのは良い習慣ではありませんが)。変更されたメッセージは送信したいものではないため、送信する前にメッセージの行を手動で分割するようクラスのユーザーに依頼することは、一般的な解決策ではありません。76 文字を超えるリンクが含まれる可能性があるため、分割できません)。Quoted-Printable は 76 文字を超える行を含むメッセージを処理できます 前に エンコーディングが正しく実装されている限り。