Я пытаюсь отправить электронное письмо, используя учетные данные по умолчанию и SMTPClient.
Исключение, которое я получаю:
SMTP-серверу требуется защищенное соединение, или клиент былне аутентифицирован.Ответ сервера: 5.7.1 Клиент не прошел проверку подлинности.
Код, который я пытаюсь использовать:
public void SendEmail(List<string> recipients, string subject, string body)
{
if (recipients.Count == 0)
return;
MailMessage mail = new MailMessage();
SmtpClient client = new SmtpClient();
foreach (string to in recipients)
{
mail.To.Add(to);
}
mail.From = new MailAddress("email@email.com");
client.Port = 25;
client.DeliveryMethod = SmtpDeliveryMethod.Network;
client.UseDefaultCredentials = true;
client.Host = "smtprelay.email.com";
//client.Credentials = new System.Net.NetworkCredential("email@email.com", password);
ServicePointManager.ServerCertificateValidationCallback = delegate (object s, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { return true; };
client.EnableSsl = true;
mail.Subject = subject;
mail.Body = body;
mail.IsBodyHtml = true;
try
{
client.Send(mail);
}
catch(Exception e)
{
Console.Write(e.Message);
}
mail.Dispose();
}
Я тестировал с EnableSsl = true и false, ни сработало.Если я установлю для UseDefaultCredentials значение false и передам их через NetworkCredential, то это сработает.
Есть ли какие-то настройки взамен или такие, которые нужно установить?
Редактировать: int ServerCertificateCallback, я получаю: '((System.Net.Mail.SmtpClient) s) .ServicePoint.Address 'выдал исключение типа' System.NotSupportedException '
, а sslPolicyErrors было System.Net.Security.SslPolicyErrors.RemoteCertificateNameMismatch
Означает ли это, что групповые политики не допускают этого?