System.Net.Mail.SmtpException: для SMTP-сервера требуется безопасное соединение или клиент не прошел проверку подлинности

Я пытаюсь отправить электронное письмо с адресом своего сайта из приложения С#.
Это работало отлично в течение нескольких месяцев до недавнего времени. (возможно, мой провайдер меняет некоторые вещи или кто-то другой изменил настройки)

Здесь код:

  private void sendEmail(Email invite) {
            MailMessage mail = new MailMessage();
            SmtpClient SmtpServer = new SmtpClient(smtpServerName);
            mail.From = new MailAddress(emailUsername);

            mail.To.Add(invite.RecipientEmail);
            mail.Subject = invite.MessageSubject;
            mail.Body = invite.MessageBody;

            SmtpServer.UseDefaultCredentials = false;
            SmtpServer.Port = 587;
            SmtpServer.Credentials = new System.Net.NetworkCredential(emailUsername, emailPassword);
//          SmtpServer.EnableSsl = true;
            SmtpServer.Send(mail);
        }  

Здесь ошибка:

Для SMTP-сервера требуется безопасное соединение, или клиент не прошел аутентификацию. Ответ сервера: Требуется проверка подлинности SMTP.

Глядя на другие вопросы, я попробовал, что они предложили, чтобы сделать SmtpServer.EnableSsl = true. Это не сработало. Он дал следующее:

System.Net.Mail.SmtpException: сервер не поддерживает безопасные подключения.

Я предполагаю, что я должен отключить SSL и иметь его так, как раньше.

Любые предложения о том, как снова отправить электронную почту?

ИЗМЕНИТЬ
Я пробовал без SmtpServer.UseDefaultCredentials = false;
Я попытался с ним установить значение true: SmtpServer.UseDefaultCredentials =true;
Я пробовал комментировать эту строку вместе со следующим //SmtpServer.Credentials = new System.Net.NetworkCredential(emailUsername, emailPassword);

Ответ 1

Это сообщение об ошибке обычно вызвано одним из следующих:

  • Неправильные настройки соединения, такие как неправильный порт, указанный для защищенного или незащищенного соединения.
  • Неправильные учетные данные. Я бы проверил комбинацию имени пользователя и пароля, чтобы убедиться, что учетные данные верны.

Ответ 2

Я думаю, вам нужно установить DeliveryMethod = SmtpDeliveryMethod.Network

этот в настоящее время работает на моем ПК, просто я проверил, работает хорошо, попробуйте это

using System.Net;
using System.Net.Mail;

var fromAddress = new MailAddress("[email protected]", "From Name");
var toAddress = new MailAddress("[email protected]", "To Name");
const string fromPassword = "fromPassword";
const string subject = "Subject";
const string body = "Body";

var smtp = new SmtpClient
           {
               Host = "smtp.gmail.com",
               Port = 587,
               EnableSsl = true,
               DeliveryMethod = SmtpDeliveryMethod.Network,
               UseDefaultCredentials = false,
               Credentials = new NetworkCredential(fromAddress.Address, fromPassword)
           };
using (var message = new MailMessage(fromAddress, toAddress)
                     {
                         Subject = subject,
                         Body = body
                     })
{
    smtp.Send(message);
}

Ответ 3

Если вы уверены, что ваше имя пользователя и пароль верны, но вы все равно получаете ошибки, это означает, что Gmail заблокировал ваше приложение.

Вы должны проверить переключатель "Включить" в следующую ссылку, относящуюся к вашей учетной записи gmail. Тогда он будет работать нормально.