2016-01-12 3 views
0

У меня не было никаких проблем с этим кодом, за исключением адреса электронной почты одного пользователя (у каждого есть то же имя домена @OurCompany).C# Smtp.Send не работает для определенного адреса электронной почты

Я отправил ему письмо через Outlook, и он прошел через штраф. При запуске кода исключений не возникает, но наш SysAdmin говорит, что письма, которые я пытался отправить, даже не попадают по электронной почте на сервер.

public static void SendEmail(string sTo, string sSubject, string sBody) 
{ 
    using (MailMessage message = new MailMessage(new MailAddress(ConfigurationManager.AppSettings["FromUser"], "User"), new MailAddress(sTo)) 
    { 
     Subject = sSubject, 
     Body = sBody 
    }) 
    { 
     using (var client = new SmtpClient(ConfigurationManager.AppSettings["SMTPGridName"])) 
     { 
      client.DeliveryMethod = SmtpDeliveryMethod.Network; 
      client.Port = int.Parse(ConfigurationManager.AppSettings["SmtpPort"]); 
      client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["EmailCredential"], 
       ConfigurationManager.AppSettings["EmailPassword"]); 
      client.EnableSsl = true; 
      client.Send(message); 
     } 
    } 
} 
+0

Что по этому поводу адрес электронной почты? любой особый символ в нем? Из Outlook вы набрали адрес электронной почты или выбрали из списка адресов? – Spidey

ответ

0

Оказалось, что электронные письма были расставания с SendGrid, прежде чем он попал на наш сервер электронной почты для причины «Возвращенные адрес. " SysAdmin считает, что сервер электронной почты, возможно, был отключен в какой-то момент, что привело к добавлению адреса электронной почты в список «не существует». Адрес был удален из списка, и теперь он работает.

Спасибо за предложения

0

вот простой метод, который поможет вам сэкономить много головной боли

public static void SendEmail(string sTo, string subject, string body) 
{ 
    var Port = int.Parse(ConfigurationManager.AppSettings["SmtpPort"]); 
    using (var client = new SmtpClient(Your EmailHost, Port)) 
    using (var message = new MailMessage() 
    { 
     From = new MailAddress(FromEmail), 
     Subject = subject, 
     Body = body 
    }) 
    { 
     message.To.Add(sTo); 
     client.DeliveryMethod = SmtpDeliveryMethod.Network; 
     client.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["EmailCredential"], 
       ConfigurationManager.AppSettings["EmailPassword"]); 
     client.EnableSsl = true; 
     client.Send(message); 
    }; 
}