当我想将邮件发送到Outlook.com电子邮件地址时,它将进入垃圾邮件/垃圾文件夹,而对于Google和Yahoo邮件就可以了。我已经检查了所有这些邮件提供商的SpamAssassin分数(我使用过https://spamcheck.postmarkapp.com/):
Google:1.7,不错 1.5 RCVD_IN_SORBS_WEB(我在一个黑名单中)
Yahoo:1.5,好 1.5 RCVD_IN_SORBS_WEB(相同-我在一个黑名单中,其余都可以!)
Outlook:5.7,垃圾邮件!
0.0 URIBL_BLOCKED管理员注意:对URIBL的查询是
受阻。参见
http://wiki.apache.org/spamassassin/DnsBlocklists… #dnsbl-block了解更多信息。 [URIs:x]
1.2 MISSING_HEADERS缺少:标头
0.1 DKIM_SIGNED消息具有DKIM或DK签名,而不是
必须有效
0.1 DKIM_INVALID DKIM或DK签名存在,但无效
0.0 UNPARSEABLE_RELAY信息性:消息具有不可解析的中继线 1.4 MISSING_DATE缺少日期:标头
1.0 MISSING_FROM缺少来源:标头
0.1 MISSING_MID缺少消息ID:标头
1.8 MISSING_SUBJECT缺少主题:标头
0.0 TVD_SPACE_RATIO没有可用的描述。
GMX:4,很好(嗯,它在垃圾邮件文件夹中!)
-0.0 RCVD_IN_DNSWL_NONE RBL:发件人在https://www.dnswl.org/处列出,否
信任[在list.dnswl.org中列出]
0.1 DKIM_SIGNED消息具有DKIM或DK签名,而不是
必须有效
0.1 DKIM_INVALID DKIM或DK签名存在,但无效
1.3 RDNS_NONE由不带主机的主机传递到内部网络
rDNS
2.3 EMPTY_MESSAGE消息似乎没有文字部分,没有
主题:文字
0.1 MISSING_MID缺少消息ID:标头
您可以看到缺少标题,但是在Google和Yahoo中都可以。这是我的代码(C#)
MailMessage mail = new MailMessage(username, mailReceiver);
mail.Subject = title;
AddAlternativeTextViewToMail(ref mail, message); // adding alternative view to HTML one (plain text)
SmtpClient client = new SmtpClient();
client.Port = 587;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
mail.IsBodyHtml = true;
mail.BodyEncoding = System.Text.Encoding.GetEncoding("utf-8");
mail.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;
client.UseDefaultCredentials = false;
client.Host = "mail.mydomain.com";
client.Credentials = new NetworkCredential(username, password);
//mail.Body = message; // no body, coz it's already in alternative view
client.Send(mail);
这是AddAlternativeTextViewToMail方法:
private static void AddAlternativeTextViewToMail(ref MailMessage mail, string message)
{
string htmlTagPattern = "<[^\"]*?>";
string plainMessage = message.Replace("<br />", "\r\n");
plainMessage = Regex.Replace(plainMessage, htmlTagPattern, string.Empty);
plainMessage = plainMessage.Replace("<", "").Replace(">", "").Replace("a target=\"_blank\" href=\"", " ").Replace("\"", " ").Replace("a href=", "");
//plainMessage = Regex.Replace(plainMessage, @"^\s+$[\r\n]*", "", RegexOptions.Multiline);
//plainMessage = plainMessage.Replace(" ", string.Empty);
mail.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plainMessage, Encoding.UTF8, System.Net.Mime.MediaTypeNames.Text.Plain));
mail.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(message, Encoding.UTF8, System.Net.Mime.MediaTypeNames.Text.Html));
}
如果我从Google邮件发送相同的电子邮件,那么它也不会进入Outlook中的垃圾邮件文件夹。我究竟做错了什么? 干杯