0
我使用System.Net.Mail.SmtpClient
通过远程SMTP服务器发送电子邮件。当我查看发送邮件的标题时,我看到该邮件从X-Spam获得2.5次点击。如何防止From
字段的base64编码,以及如何摆脱NULL_IN_BODY
命中?尽管它没有被标记为垃圾邮件,但我希望它是完美的。我无法找到关于此问题的任何信息(如果它确实是一个问题)。减少通过SmtpClient发送的邮件中的X-Spam命中()
MIME-Version: 1.0
From: Myself <[email protected]>
To: [email protected]
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);
}
此类字符可能会出现在From标题的“mailbox”的“display-name”部分。 – Anomie 2011-03-25 02:59:16
@Anomie:好点。我更新了我的答案,以便更清楚。 – 2011-03-25 13:38:01
谢谢你的回复。请参阅我的编辑。 – sshow 2011-03-25 18:03:07