邮件进入Outlook垃圾邮件文件夹

时间:2019-10-31 18:14:41

标签: c# email outlook spamassassin

当我想将邮件发送到Outlook.com电子邮件地址时,它将进入垃圾邮件/垃圾文件夹,而对于Google和Yahoo邮件就可以了。我已经检查了所有这些邮件提供商的SpamAssassin分数(我使用过https://spamcheck.postmarkapp.com/):

  1. Google:1.7,不错 1.5 RCVD_IN_SORBS_WEB(我在一个黑名单中)

  2. Yahoo:1.5,好 1.5 RCVD_IN_SORBS_WEB(相同-我在一个黑名单中,其余都可以!)

  3. 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没有可用的描述。

  4. 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中的垃圾邮件文件夹。我究竟做错了什么? 干杯

0 个答案:

没有答案