Ответ сервера был: 5.7.57 SMTP; клиент не прошел проверку подлинности для отправки анонимной почты во время почты из
мне нужно отправить почту с помощью моего веб-приложения. Ниже приведен код, показывающий The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.57 SMTP; Client was not authenticated to send anonymous mail during 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);
}
}
}
10 ответов
Я не могу быть хорошим программистом, но вы, похоже, передаете адрес From как "emailAddress", который не является правильным адресом электронной почты, а для Office365 from должен быть реальным адресом в системе Office365.
вы можете проверить это, если вы жестко закодируете свой адрес электронной почты в качестве пароля from и office 365. Не оставляйте его там, хотя конечно.
@Reshma-если вы еще не поняли, вот ниже вещи, которые я пробовал, и он решил ту же проблему.
убедитесь, что NetworkCredentials вы установили правильно. Например, в моем случае, поскольку это был office SMTP, идентификатор пользователя должен был использоваться в NetworkCredential вместе с доменным именем, а не фактическим идентификатором электронной почты.
вам нужно сначала установить" UseDefaultCredentials " в false, а затем установить учетные данные. Если вы установите "UseDefaultCredentials" после этого сбрасывает NetworkCredential в null.
надеюсь, что это помогает.
Я потратил слишком много времени на это, и решение было очень простым. Мне пришлось использовать мой " 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("test@test.com");
message.Subject = "Test";
message.CC.Add(new MailAddress("dude@good.com"));
sClient.Send(message);
основные две причины только, как указано в комментариях выше
- NetworkCredentials, которые вы установили, должны быть правильными. Проверьте, с попробуйте войти в учетную запись.
- необходимо указать
UseDefaultCredentials
сначала false, а затем установить учетные данные Или Положиsmtp.UseDefaultCredentials = false;
вышеsmtp.Credentials assignment
.
У меня такая же проблема.
добавить домен решил его..
mySmtpClient.Credentials = New System.Net.NetworkCredential("email@domain.com", "password", "domain.com")
Это старый вопрос, но так как это первый результат в google для этой ошибки, я думал, что обновлю свой прогресс в этой проблеме.
Я тоже потратил майские часы на этот вопрос. В конце концов мне пришлось изменить пароль учетной записи Office 365 несколько раз, пока мой код не удалось отправить электронные письма.
не пришлось вносить никаких изменений в код.
Если вы используете office 365, выполните следующие действия:
- проверьте срок действия пароля с помощью Azure power shell: Get-MsolUser-All / выберите DisplayName, LastPasswordChangeTimeStamp
- изменить пароль, используя новый пароль (не старый). Вы можете в конечном итоге вернуться к старому паролю, но нужно дважды менять.
надеюсь, что это помогает!
начал работать после добавления недвижимости:
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
mail.smtp.user=xxx@example.com
mail.smtp.password=xxx
mail.smtp.from=yyy@example.com
Я изменил пароль Office365, а затем попытался отправить тестовое письмо, и это сработало как шарм для меня.
Я использовал передний конец (опция database mail) и настройки как smtp.office365.com номер порта 587 и проверил опцию безопасного подключения. используйте обычную проверку подлинности и сохраните учетные данные. Надеюсь, это кому-то пригодится.
в моем случае я использовал конструктор MailMessage, который принимает две строки (to, from) и получает ту же ошибку. Когда я использовал конструктор по умолчанию, а затем добавил объект MailAddress в свойство To MailMessage, он работал нормально.