2012-05-29 3 views
0

Я сделал asp.net webservice в C# для отправки почты на заданный mailid в качестве параметра.Почта отправлена ​​в спам

Почта отправлена, но будет показана как спам, а не как почтовая отправка.

Я использовал следующий код;

.NET КОД:

public int SendMail(string mailto, string username, string password) 
    { 
     try 
     { 
      string mailFrom = "[email protected]"; 
      string siteName = "www.XYZ.com"; 
      MailAddress fromAddress = new MailAddress(mailFrom, siteName); 
      SmtpClient mailClient = new SmtpClient(); 

      MailMessage message = new MailMessage(); 
      message.From = fromAddress; 
      message.To.Add(mailto); 

      message.Subject = "Your User Name and Password"; 
      message.IsBodyHtml = true; 

      mailClient.Host = "relay-hosting.secureserver.net"; 
      mailClient.UseDefaultCredentials = false; 
      mailClient.EnableSsl = false; 

      string body = "<HTML><BODY><CENTER><H2>Your User Name :'" + username + "' </H2><BR/><H2>Your Password :'" + password + "' </H2></CENTER></BODY></HTML>"; 

      message.Body = body; 

      mailClient.Send(message); 

      return 1; 
     } 
     catch (Exception ex) 
     { 
      return 0; 
     } 
    } 

Web.config КОД:

<system.net> 
    <mailSettings> 
     <smtp from="[email protected]"> 
      <network host="relay-hosting.secureserver.net" /> 
     </smtp> 
    </mailSettings> 
    </system.net> 

Что может быть проблема?

Спасибо ..

ответ

2

Содержание вашего MailMessage в настоящее время идентифицируется как спам провайдера получателя или сервер ретрансляции вы используете черный список. Если вы используете relay-hosting.secureserver.net, возможно, это будет позже. Я бы предложил использовать более надежный ретранслятор, чем GoDaddy.

+0

@ lukiffer- Спасибо за ответ. Можете ли вы предложить другую альтернативу для этого? Какой код я должен написать для этого? – ios

+1

Во-первых, я бы сказал, использую 'noreply @ yourdomain.com' - таким образом фильтр ожидает автоматическое письмо. Кроме того, вы должны добавить в сообщение требуемую идентификацию отказа и идентификацию отправителя (требование США), чтобы избежать фильтрации. Если это проблема с черным списком, существует множество других SMTP-провайдеров с хорошей репутацией. AuthSMTP - это тот, который я использовал в прошлом. – lukiffer

+0

Ох. ОК. Благодарю. Можете ли вы предоставить пример кода для того, что я могу использовать для своей проблемы? – ios

2

Ваш адрес FROM - GMAIL.COM, и вы НЕ отправляете электронную почту с сервера GMAIL, а с другого сервера. Используя DomainKeys Identified Mail (DKIM) и Policy Policy Framework (SPF), теперь возможно (и большинство системных администраторов) указать авторизованные серверы отправки электронной почты для этого домена в DNS-записи домена. Таким образом, когда сервер получателей электронной почты получает электронное письмо, он может проверить подлинность источника электронной почты, проверив сервер отправки электронной почты со списком серверов, упомянутых как разрешенные в DNS домена отправителя. Если это не соответствует, то в соответствии с правилами, установленными или заданными sysadmin домена отправителя в их записи DNS, электронное письмо может быть полностью отклонено или сохранено как спам в папке спама.

Я предполагаю, что это то, что происходит. Вы также должны проверить учетные данные отправляющего сервера (SMTP) с помощью службы http://www.mxtoolbox.com/blacklists.aspx перед отправкой писем.

2

Возможно, письмо будет отображаться как спам, если вы отправляете с IP-адреса, у которого нет действительной записи SPF для домена, на который вы претендуете. В этом примере «" relay-hosting.secureserver.net "не имеет действительного IP-адреса для работы в качестве SMTP-сервера для gmail.

Попробуйте выполнить отправку теста из фактического домена, который вы будете использовать в реальной жизни, вместо этого .. из «[email protected]»

Если он по-прежнему будет помечен как спам, очень легко добавить запись SPF для теста @youractualdomain.com Вот сайт, который помог мне в прошлом: http://www.zytrax.com/books/dns/ch9/spf.html

1

В игре есть несколько вещей, которые сговариваются, чтобы поднять счет спама вашей электронной почты. Помните, что это не спам/notspam, а скорее «спам-счет», выше которого ваш адрес электронной почты будет отмечен как спам принимающим сервером.

Я бы предположил, что факторы при игре в вашем случае являются на следующие:

  • HTML тело без каких-либо альтернативных текстовых сообщений
  • От адреса не соответствует фактическому серверу почты отправляется от
  • От адреса не существует
  • SMTP-сервер (relay-hosting.secureserver.net) имеет низкую репутацию
  • нет SPF или domainKey записи

Решение находится в нескольких точках, а также:

  • Создать альтернативный текст версия сообщения и включить его в организме (this answer объясняет, как это сделать)
  • Используйте С-адреса, на самом деле существует на сервере электронной почты отправляется от
  • Используйте авторитетный поставщик для SMTP-сервера, такие как Sendgrid, postmarkApp или Mailjet
  • Указание SPF и DomainKeys DNS записей позволяет принимающему серверу идентифицировать ваше сообщение как поступающее с нужного сервера

Удачи вам!

Смежные вопросы