我正在使用System.Net.Mail.SmtpClient
通过远程 SMTP 服务器发送电子邮件。当我查看已发送邮件的标头时,我看到该邮件从 X-Spam 获得了 2.5 次点击。如何防止From
字段的base64编码,以及如何摆脱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);
}