Программная отправка 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”

Решение:

Есть несколько возможных:

  1. Проверьте правильность пароля
  2. Попробуйте понизить уровень безопаснити аккаунта, с которого производится отправка по ссылке: https://www.google.com/settings/security/lesssecureapps
  3. Если, почему-то, у вас стоит UseDefaultCredentials = true – измените на false
  4. Если работает нормально локално, но не работает на продакшн-сервере – попробуйте залогиниться в google-аккаунт на прод. сервере (могут быть проблемы из-за различных timezone/часовых поясов и т.п.)
  5. Попробуйте изменить пароль на более сложный

Как ни странно, мне помог только 5ый пункт
Удачи!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s