#c# #email #mailmessage
#c# #Адрес электронной почты #mailmessage
Вопрос:
у меня есть следующий код, который отлично работал в течение нескольких месяцев, но внезапно перестал работать в этой строке:
smtpClient.Send(msg);
это внутреннее приложение, отправляющее электронные письма внутренним сотрудникам в моей компании
со следующей ошибкой:
Почтовый ящик недоступен. Ответ сервера был: 5.7.1 Не удалось ретранслировать для ABC@comp.com
кто-нибудь может придумать причину, по которой этот код будет нормально работать целую вечность и внезапно просто прекратит работу?
MailMessage msg = new MailMessage();
msg.From = new MailAddress(fromEmailAddress_);
msg.IsBodyHtml = true;
msg.To.Add(new MailAddress(email.Trim()));
msg.Subject = subject_;
msg.Body = body_;
msg.IsBodyHtml = true;
msg.Priority = MailPriority.High;
var smtpClient = new SmtpClient(_mailServer);
smtpClient.UseDefaultCredentials = false;
smtpClient.Credentials = new System.Net.NetworkCredential(_user, _pwd);
try
{
smtpClient.Send(msg);
}
catch (Exception ex)
{
Console.Write(ex.Message);
}
Ответ №1:
Почтовый сервер, к которому вы подключаетесь, был ужесточен, чтобы не разрешать ретрансляцию ни для ваших учетных данных, ни из вашей сети / IP. Это не проблема с кодом (если не считать смены SMTP-сервера), а проблема или вопрос к тому, кто управляет используемым вами SMTP-сервером.
Комментарии:
1. как мы собираемся преодолеть эту проблему?
Ответ №2:
Помимо проверки того, что служба smtp запущена, вы можете попробовать следующее:
Попробуйте установить для перечисления SmtpDeliveryMethod значение PickupDirectoryFromIis.
http://msdn.microsoft.com/en-us/library/system.net.mail.smtpdeliverymethod.aspx