C# отправка аутентифицированной почты через SMTP
у меня небольшая проблема со скриптом sendmail. Моя почта не может быть доставлена в один из моих внутренних списков рассылки. Другие дл получают почту. Я получаю ответное сообщение:
RESOLVER.RST.AuthRequired; Authentication required
Мой код c# выглядит следующим образом (метод SendMail принадлежит классу с именем Plan):
public void SendMail(int supplierValue, List<Location> locationList, string meldingsNr, string date, string fromT, string tillT) { var mailFrom = "mail@mail.com"; SmtpClient client = new SmtpClient("server ip",25); client.UseDefaultCredentials = false; NetworkCredential basicAuthInfo = new NetworkCredential("username", "password"); client.Credentials = basicAuthInfo; client.EnableSsl = false; // Create some empty vars var toList = ""; var ccList = ""; var mailSubject = ""; var mailBody = ""; List<string> locationListString = new List<string>(); List<string> locationListString2 = new List<string>(); // Populate toList with var llString ** code removed ** // switch on supplier Value to fill toList, ccList and mailSubject ** code removed ** // Create mail message MailMessage message = new MailMessage(); MailAddress mailAddress = new MailAddress(mailFrom); message.To.Add(toList); message.From = mailAddress; message.CC.Add(ccList); // set subject and encoding message.Subject = mailSubject; message.SubjectEncoding = Encoding.UTF8; // set body and encoding message.Body = mailBody; message.BodyEncoding = Encoding.UTF8; message.IsBodyHtml = true; try { // Send mail client.SendCompleted += (s, e) => { client.Dispose(); message.Dispose(); }; client.SendAsync(message, null); } catch (SmtpException ex) { MessageBox.Show(ex.InnerException.Message); } catch (System.Exception ex) { MessageBox.Show(ex.InnerException.Message); } }
Что я уже пробовал:
я попробовал применить это решение:
аутентификация - как сделать SMTP аутентифицированным в C# - переполнение стека[^]
Убедитесь, что вы установили SmtpClient.Учетные данные после вызова SmtpClient.UseDefaultCredentials = false. Порядок важен как установка SmtpClient.UseDefaultCredentials = false сбросит SmtpClient.Учетные данные равны нулю.
но это не сработало. Есть ли еще что-то неправильное в моем коде ?
Richard Deeming
Похоже, Exchange считает, что ваше сообщение исходит из-за пределов вашей сети и не проходит проверку подлинности.
На вкладке "Настройки потока почты" есть опция отключения требования аутентификации, но вы, вероятно, не хотите этого делать.
Посмотрим, если этот ответ ServerFault[^] помощи.
Member 13188273
Нет я не хочу этого делать :)