Почта отправляется в папку спама Outlook - PullRequest
0 голосов
/ 31 октября 2019

Когда я хочу отправить сообщение на адрес электронной почты 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. Прогноз: 5,7, Спам!

    0.0 URIBL_BLOCKED ADMINISTRATOR УВЕДОМЛЕНИЕ: запрос к URIBL был
    заблокирован. См.
    http://wiki.apache.org/spamassassin/DnsBlocklists… # dnsbl-block для получения дополнительной информации. [URI: x]
    1.2 MISSING_HEADERS Отсутствует заголовок To: заголовок
    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 Отсутствует идентификатор сообщения: заголовок
    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_MIDMissing Message-Id: header

Как вы можете видеть, здесь отсутствуют заголовки, но в 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. Что я делаю неправильно? Приветствия

...