Сообщения электронной почты, отправляемые в папку спама
Я создал портал сообщества, в котором пользователь создает свою учетную запись. После успешной регистрации письмо с подтверждением отправляется на зарегистрированный адрес электронной почты.
Я использую следующий код для отправки почты -
private void SendMail(string recvr, string recvrName, string verCode, int NewUserID)
{
try
{
string emailID = ConfigurationManager.AppSettings["WebMasterMail"];
string mailPass = ConfigurationManager.AppSettings["pass"];
string mailer = ConfigurationManager.AppSettings["mailer"];
MailMessage msg = new MailMessage();
MailAddress addrFrom = new MailAddress(emailID, "Panbeli.in.... Bari community portal");
MailAddress addrTo = new MailAddress(recvr, recvrName);
msg.To.Add(addrTo);
msg.From = addrFrom;
msg.Subject = "You have registered sucessfully on PanBeli.in.";
msg.Priority = MailPriority.High;
msg.Body = RegisterMessageBody(recvrName, verCode,NewUserID);
msg.IsBodyHtml = true;
SmtpClient smtp = new SmtpClient(mailer);
smtp.Credentials = new System.Net.NetworkCredential(emailID, mailPass);
smtp.Send(msg);
}
catch (Exception Ex) { }
}
Во время тестирования мы обнаружили, что все письма с подтверждением отправляются в папку SPAM вместо Inbox.
Что-то не так с кодом или что-то связано с безопасностью.
Может ли кто-нибудь предложить решение этой проблемы.
Спасибо, что поделились своим временем.
Ответы
Ответ 1
Похоже, что ваш адрес электронной почты помечается SpamAssassin или тому подобное, поэтому вам просто нужно сосредоточиться на изменении вашей электронной почты, чтобы не попасть под флагом.
-
Ваш контент не звучит так, как будто у него есть повод оценить высокий балл за байесовский счет, поэтому я не думаю, что проблема. Это не помешает попробовать удалить возможные триггерные слова.
-
Ваше сообщение отмечено с высоким приоритетом. Вам это нужно? Это просто добавляет в одну из показателей подсчета в спам-фильтр. Спам часто отмечен с высоким приоритетом, поэтому ваше сообщение будет обработано более тщательно. С другой стороны, для некоторых фильтров, обозначающих ваше сообщение с высоким приоритетом, будет меньше внимания.
-
IsBodyHTML
имеет значение true, но вы предоставляете text/html
. Вам минимально нужно включить альтернативный вид с помощью text/plain
.
message.IsBodyHtml = true;
string html = RegisterMessageBodyHtml(recvrName, verCode,NewUserID);
string plain = RegisterMessageBodyPlaintext(recvrName, verCode, NewUserID);
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(html, new ContentType("text/html"));
message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(plain, new ContentType("text/plain"));
-
Посмотрите, как Google относится к вашему сообщению. В gmail откройте тестовое сообщение, которое вы отправили, нажмите стрелку вниз рядом с кнопкой ответа и выберите "Показать оригинал". Вы увидите, как Google обработал ваше сообщение. Ищите заголовки вроде:
Received-SPF: softfail (google.com: domain of transitioning [email protected] does not designate xx.xx.xx.xx as permitted sender) client-ip=xx.xx.xx.xx;
Authentication-Results: mx.google.com; spf=softfail (google.com: domain of transitioning [email protected] does not designate xx.xx.xx.xx as permitted sender)
-
Прочитайте набор правил по умолчанию для SpamAssassin, поскольку он, вероятно, будет хорошей ссылкой на множество правил для большинства фильтров. Если вы можете определить, почему ваше сообщение получает флажок, вы можете его исправить.
Ответ 2
Письма, помеченные как спам
К сожалению, это не проблема программирования, но я могу понять, почему вы так думаете. Код отправляет электронные письма, и они были отправлены, как вы сообщили. Таким образом, это вряд ли будет проблемой с вашим кодом, потому что он полностью служит цели!
Обход вокруг
Все сводится к почтовому клиенту получателей (программное обеспечение, которое они используют для просмотра сообщений электронной почты), или к службам, которые обрабатывают электронные письма на каком-то шлюзе, или их комбинацию!
Все эти элементы имеют очень разнообразные алгоритмы и метрики для определения того, является ли письмо, вероятно, спамом или нет. Таким образом, одно решение, подходящее для всех, печально невозможно. Некоторые из них умны, а тем более, некоторые жестоко отбрасывают огромные% писем, другие работают исключительно по принципу "не в белом списке, вы не попадаете", а затем есть те, которые просто позволяют все входить независимо от содержание/происхождение.
Способы решения этой проблемы:
- Чтобы попытаться попасть в белые списки для основных поставщиков электронной почты.
- Просветите свою аудиторию, чтобы добавить адрес электронной почты отправителей в качестве доверенного контакта.
- Проверьте, что ваш IP-адрес почтового сервера не внесен в черный список некоторыми поставщиками. Возможно, ваш IP-адрес был ранее использован для отправки спама.
- Эксперимент с содержимым электронной почты
Ответ 3
Ваш адрес от недействителен. Попробуйте ввести реальный адрес электронной почты, который указывает на действительный почтовый ящик. Предпочтительно этот адрес электронной почты находится в том же домене, что и SMTP-сервер, который вы используете для отправки почты. Если нет, прочитайте в SPF http://en.wikipedia.org/wiki/Sender_Policy_Framework
Ответ 4
Добавьте следующую строку в свой код при создании MailMessage
msg.BodyEncoding = System.Text.Encoding.GetEncoding("utf-8");
Ответ 5
Это случается со мной, и она решена сейчас,
Я просто установил теги BodyEncoding и SubjectEncoding на объект MailMessage,
и добавил тег DOCTYPE и html к моему заголовку электронной почты,
var msg = new MailMessage
{
Subject = subject,
Body = body,
BodyEncoding = System.Text.Encoding.UTF8,
SubjectEncoding = System.Text.Encoding.Default,
IsBodyHtml = true
};
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
Теперь он отлично работает
Ответ 6
Это случается очень часто даже для имен дома. Я сочувствую вам, так как вам нужен только простой текстовый адрес электронной почты, но если ваши клиенты действительно хотят этих писем, и вы действительно хотите, чтобы ваш логотип был в этом случае, они могли бы просто белым списком вашего домена, чтобы все электронные письма прошли!
Мы используем компанию mailchimp для рассылки подписных писем, и я задавал им вопросы о том, как избежать спам-фильтров, особенно в контексте по существу объявления в большую группу, что может быть очень трудно избежать, вот их советы и его много.
Избегайте фильтров спама
Ответ 7
Для тех, у кого возникла эта проблема, похоже, что Google помечает как спам любые письма, использующие тему и тело проверки подлинности электронной почты ASP.NET по умолчанию. Т.е.:
"Пожалуйста, подтвердите свой аккаунт, нажав здесь."
Изменение текста позволяет электронной почте пройти фильтр спама