System.Net.Mail.SmtpClient
リモート SMTP サーバー経由で電子メールを送信するために使用しています。送信されたメッセージのヘッダーを見ると、メッセージが X-Spam から 2.5 ヒットを取得していることがわかります。フィールドの base64 エンコードを防ぐにはどうすればよいですか? また、ヒットFrom
を取り除くにはどうすればよいですか? NULL_IN_BODY
スパムとしてマークされていなくても、完璧にしたい. この問題に関する情報を見つけることができません (それが本当に問題である場合)。
MIME-Version: 1.0
From: Myself <no-reply@myself.com>
To: me@myself.com
Date: 25 Mar 2011 15:20:23 +0100
Subject: Test subject
Content-Type: text/plain; charset=us-ascii
X-Spam-Status: No, hits=0.5 required=5.0
X-Spam-Report: 0.5 hits, 5.0 required;
* -0.5 ALL_TRUSTED Passed through trusted hosts only via SMTP
* 1.0 NULL_IN_BODY FULL: Message has NUL (ASCII 0) byte in message
X-Virus-Scanned: by moam (http://www.moam.net/)
X-Moam-Version: 0.95
Content-Transfer-Encoding: 8bit
X-MIME-Autoconverted: from quoted-printable to 8bit by mx02.example.com id p2PEKKNs014451
Hello, sshow!
Below is your login information
Username: sshow
Password: a8sJdfl
Sent from http://me.myself.com
編集:FROM_EXCESS_BASE64
フィールドのすべてのエンコーディングを削除することで、最も重要な警告を削除することができました。以前は手動でEncoding.UTF8
フィールドを設定していました。
文字列からすべての制御文字を削除するbody
と、警告が発生しなくなります。ただし、これにより改行も削除されます。
foreach (char c in body)
{
stringBuilder.Append(Char.IsControl(c) ? ' ' : c);
}
編集:改行を除くすべての制御文字を削除すると、警告が返されます!
foreach (char c in body)
{
stringBuilder.Append(Char.IsControl(c) && c != '\r' && c != '\n' ? ' ' : c);
}