7

VB.NET アプリケーションで HTML 電子メールを送信するコードをいくつか書きました (この場合は、パスワードを忘れた場合のリマインダーです)。

電子メールをテストすると、スパム フィルターに取り込まれてしまいます。スコアが悪いものの 1 つは、次の問題が原因です。

MIME_QP_LONG_LINE RAW: 引用された印刷可能な行が 76 文字を超えています

電子メールの送信元を確認し、76 文字を超える各行を CR+LF で区切って 2 行に分割しましたが、それでも問題は解決しませんでした。

誰かが私を正しい方向に向けることができますか?

ありがとう!

4

2 に答える 2

5

Quoted Printableは、8ビット文字を「= {HEX-Code}」に拡張するため、メッセージが長くなります。たぶんあなたはちょうどこの限界に達していますか?

たとえば、70文字でメッセージを壊そうとしましたか?これにより、1行に数文字のスペースが提供されます。

または、Base64で電子メールをエンコードするだけです。すべてのメールクライアントがそれを処理できます。

または、Content-Transfer-Encodingを8ビットに設定し、データをエンコードせずに送信します。最近、8ビットバイトを処理できないメールサーバーはありません。

于 2008-09-12T10:52:52.777 に答える
2

これは、System.Net.Mail.MailMessage の Quoted-Printable エンコーディングの実装におけるバグで、長い間存在していましたが、.Net 4 Beta 2 の時点で修正されたようです。

http://connect.microsoft.com/VisualStudio/feedback/details/156052/mailmessage-body-encoding-quoted-printable-violates-rfcs-soft-line-breaks-requirements

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

于 2010-03-15T12:02:41.230 に答える