Я пытаюсь отправить почту с помощью gmail в asp.net
Мой код:
using (MailMessage mm = new MailMessage(txtEmail.Text, txtTo.Text))
{
mm.Subject = txtSubject.Text;
mm.Body = txtBody.Text;
if (fuAttachment.HasFile)
{
string FileName = Path.GetFileName(fuAttachment.PostedFile.FileName);
mm.Attachments.Add(new Attachment(fuAttachment.PostedFile.InputStream, FileName));
}
mm.IsBodyHtml = false;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
NetworkCredential NetworkCred = new NetworkCredential(txtEmail.Text, txtPassword.Text);
smtp.UseDefaultCredentials = true;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
ClientScript.RegisterStartupScript(GetType(), "alert", "alert('Email sent.');", true);
}
Но я получаю ошибку:
The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required. Learn more at
где моя ошибка?
Вы можете попробовать следующие предложения:
smtp.UseDefaultCredentials = false;
Изменить "smtp.UseDefaultCredentials = true;" to "smtp.UseDefaultCredentials = false;". Или проверьте свою учетную запись gmail на код ниже.
using (MailMessage mm = new MailMessage(new MailAddress("[email protected]"), new MailAddress("[email protected]")))
{
mm.Subject = "test";
mm.Body = "body test";
mm.IsBodyHtml = false;
SmtpClient smtp = new SmtpClient();
smtp.Host = "smtp.gmail.com";
smtp.EnableSsl = true;
smtp.DeliveryMethod = SmtpDeliveryMethod.Network;
NetworkCredential NetworkCred = new NetworkCredential("[email protected]", "password");
smtp.UseDefaultCredentials = false;
smtp.Credentials = NetworkCred;
smtp.Port = 587;
smtp.Send(mm);
}
ОБНОВИТЬ
Перейдите по ссылке: google.com/settings/security?hl=ru_RU, и если поле "Доступ для менее безопасных приложений" отключено, нажмите "Настройки" и измените его на включенное. Затем проверьте свое соединение с кодом выше. Он работал для меня на новом пользователе gmail
smtp.UseDefaultCredentials = false