Подтвердить что ты не робот

5.7.57 SMTP - Клиент не прошел проверку подлинности для отправки анонимной почты во время ошибки MAIL FROM

Я должен отправлять письма, используя мое веб-приложение. Учитывая приведенный ниже код, показывающий The SMTP server requires a secure connection or the client was not authenticated. The server response was: The SMTP server requires a secure connection or the client was not authenticated. The server response was:

5.7.57 SMTP; Клиент не прошел проверку подлинности для отправки анонимной почты во время MAIL FROM.

Помоги мне найти правильное решение. Спасибо.

Код:

protected void btnsubmit_Click(object sender, EventArgs e)
 {

   Ticket_MailTableAdapters.tbl_TicketTableAdapter tc;
   tc = new Ticket_MailTableAdapters.tbl_TicketTableAdapter();
   DataTable dt = new DataTable();
   dt = tc.GetEmail(dpl_cate.SelectedValue);
   foreach (DataRow row in dt.Rows)
    {
    string eml = (row["Emp_Email"].ToString());
    var fromAddress = "emailAddress";
    var toAddress = eml;
    const string fromPassword = "*****";
    string body = "Welcome..";
 // smtp settings
    var smtp = new System.Net.Mail.SmtpClient();
       {
         smtp.Host = "smtp.office365.com";
         smtp.Port = 587;
         smtp.EnableSsl = true;

         smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
         smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
         smtp.UseDefaultCredentials = false;
         smtp.Timeout = 600000;
       }
  // Passing values to smtp object
     smtp.Send(fromAddress, toAddress, subject, body);
     }
  } 
 }
4b9b3361

Ответ 1

Я не могу быть хорошим программистом, но вы, кажется, передаете адрес From как "emailAddress", который не является надлежащим адресом электронной почты, а для Office365 он должен быть реальным адресом в системе Office365.

Вы можете подтвердить, что если вы жестко указываете свой адрес электронной почты как пароль от вашего офиса и вашего офиса 365. Не оставляйте его там, хотя, конечно.

Ответ 2

@Reshma. Если вы еще не поняли это, вот ниже, что я пробовал, и он решил ту же проблему.

  • Убедитесь, что NetworkCredentials установлены правильно. Например, в моем случае, поскольку это был офис SMTP, идентификатор пользователя должен был использоваться в NetworkCredential вместе с именем домена, а не фактическим идентификатором электронной почты.

  • Сначала нужно установить значение "UseDefaultCredentials" в false, а затем установить учетные данные. Если после этого вы установите "UseDefaultCredentials", он сбрасывает значение NetworkCredential в null.

Надеюсь, что это поможет.

Ответ 3

Я использую эту проблему.

Добавьте домен, который разрешил его.

mySmtpClient.Credentials = New System.Net.NetworkCredential("[email protected]", "password", "domain.com")

Ответ 4

Я потратил слишком много времени на это, и решение было очень простым. Мне пришлось использовать мой "MX" в качестве хоста и порта 25.

        var sClient = new SmtpClient("domain-com.mail.protection.outlook.com");
        var message = new MailMessage();

        sClient.Port = 25;
        sClient.EnableSsl = true;
        sClient.Credentials = new NetworkCredential("user", "password");
        sClient.UseDefaultCredentials = false;

        message.Body = "Test";
        message.From = new MailAddress("[email protected]");
        message.Subject = "Test";
        message.CC.Add(new MailAddress("[email protected]"));

        sClient.Send(message);

Ответ 5

Основные две причины, только упомянутые выше комментарии

  • Установленные вами NetworkCredentials должны быть правильными. Подтвердите с помощью попытки фактически войти в учетную запись.
  • Сначала нужно установить UseDefaultCredentials в false, а затем установить учетные данные Или Положите smtp.UseDefaultCredentials = false; над smtp.Credentials assignment.

Ответ 6

Это старый вопрос, но поскольку это первый результат в google для этой ошибки, я думал, что буду обновлять свой прогресс в этой проблеме.

Я потратил слишком много часов на эту проблему. В итоге мне пришлось несколько раз менять пароль учетной записи Office 365, пока мой код не смог отправить электронные письма.

Не нужно было вносить какие-либо изменения в код.

Ответ 7

Если вы используете офис 365, выполните следующие действия:

  • проверьте время истечения срока действия пароля, используя оболочку питания Azure: Get-MsolUser -All | выберите DisplayName, LastPasswordChangeTimeStamp
  • Измените пароль, используя новый пароль (а не старый). Вы можете вернуться к старому паролю, но вам нужно дважды его изменить.

Надеюсь, это поможет!

Ответ 8

Я изменил пароль Office365, а затем попытался отправить тестовое письмо, и это сработало как прелесть для меня.

Я использовал переднюю часть (вариант почтовой базы данных) и настройки как номер порта 587 smtp.office365.com и проверил опцию безопасного подключения. используйте базовую аутентификацию и сохраните учетные данные. Надеюсь, это окажется полезным для кого-то.

Ответ 9

Начало работы после добавления свойства:

mail.smtp.starttls.enable=true

Использование:

mail.smtp.host=smtp.office365.com
mail.smtp.port=587
mail.transport.protocol=smtp
mail.smtp.auth=true
mail.smtp.starttls.enable=true
[email protected]
mail.smtp.password=xxx
[email protected]

Ответ 10

В моем случае я использовал конструктор MailMessage, который принимает две строки (от, от) и получает ту же ошибку. Когда я использовал конструктор по умолчанию, а затем добавил объект MailAddress в свойство To MailMessage, он работал нормально.

Ответ 11

В моем случае двухфакторная аутентификация была включена для учетной записи FROM в Office 365. После того, как это было отключено, электронное письмо было успешно отправлено.