HTML 電子メール送信時の「引用符で囲まれた印刷可能な行が 76 文字を超えています」という警告

StackOverflow https://stackoverflow.com/questions/58630

  •  09-06-2019
  •  | 
  •  

質問

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 の時点では修正されているようです。

http://connect.microsoft.com/VisualStudio/フィードバック/詳細/156052/mailmessage-body-encoding-quoted-printable-violates-rfcs-soft-line-breaks-requirements

回避策の 1 つは、代わりに Base64 エンコーディングを使用することです (ただし、このような人間が判読できないエンコーディングでプレーンテキストの MIME 部分を送信するのは良い習慣ではありませんが)。変更されたメッセージは送信したいものではないため、送信する前にメッセージの行を手動で分割するようクラスのユーザーに依頼することは、一般的な解決策ではありません。76 文字を超えるリンクが含まれる可能性があるため、分割できません)。Quoted-Printable は 76 文字を超える行を含むメッセージを処理できます 前に エンコーディングが正しく実装されている限り。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top