Программная отправка email из .NET-приложения
Код должен отправлять email:
var fromAddress = new MailAddress("shirobokov.andrey@gmail.com", "Andrey Shirobokov");
var toAddress = new MailAddress("shirobokov.andrey@gmail.com", "Shirobokov Andrey");
const string 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);
}
На строке smtp.Send(message) валится ошибка: “SMTP connection rquires a secure connection or client was not authenticated. 5.5.1 Authentication Required” Решение: Есть несколько возможных:
- Проверьте правильность пароля
- Попробуйте понизить уровень безопаснити аккаунта, с которого производится отправка по ссылке: https://www.google.com/settings/security/lesssecureapps
- Если, почему-то, у вас стоит UseDefaultCredentials = true - измените на false
- Если работает нормально локално, но не работает на продакшн-сервере - попробуйте залогиниться в google-аккаунт на прод. сервере (могут быть проблемы из-за различных timezone/часовых поясов и т.п.)
- Попробуйте изменить пароль на более сложный
Как ни странно, мне помог только 5ый пункт Удачи!