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);
}
}
}
Ответы
Ответ 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. После того, как это было отключено, электронное письмо было успешно отправлено.