Как отправить электронное письмо с помощью C # через Gmail

Я получаю сообщение об ошибке при попытке отправить электронное письмо через веб-службу. Я попытался разрешить доступ к менее безопасным приложениям, отключив двухэтапную аутентификацию и войдя в учетную запись через веб-браузер. Ни одно из решений для SO не сработало для меня. Я все еще получаю:

Ошибка: System.Net.Mail.SmtpException: для SMTP-сервера требуется безопасное соединение или клиент не прошел проверку подлинности. Ответ сервера: 5.5.1 Требуется аутентификация.

Что я могу сделать, чтобы исправить эту проблему?

namespace EmailService { public class Service1 : IService1 { public string SendEmail(string inputEmail, string subject, string body) { string returnString = ""; try { MailMessage email = new MailMessage(); SmtpClient smtp = new SmtpClient(); smtp.Host = "smtp.gmail.com"; // set up the Gmail server smtp.EnableSsl = true; smtp.Port = 587; smtp.Credentials = new System.Net.NetworkCredential("[email protected]", "mypassword"); smtp.DeliveryMethod = SmtpDeliveryMethod.Network; smtp.UseDefaultCredentials = false; // draft the email MailAddress fromAddress = new MailAddress("[email protected]"); email.From = fromAddress; email.To.Add(inputEmail); email.Subject = body; email.Body = body; smtp.Send(email); returnString = "Success! Please check your e-mail."; } catch(Exception ex) { returnString = "Error: " + ex.ToString(); } return returnString; } } } 

Просто зайдите сюда: Менее безопасные приложения. Войдите в систему, используя свою электронную почту и пароль, которые используются для отправки почты в вашем коде c #, и выберите « Turn On .

Также перейдите по этой ссылке и нажмите « Продолжить». Разрешите доступ к вашей учетной записи Google.

также я немного его отредактировал:

 public string sendit(string ReciverMail) { MailMessage msg = new MailMessage(); msg.From = new MailAddress("[email protected]"); msg.To.Add(ReciverMail); msg.Subject = "Hello world! " + DateTime.Now.ToString(); msg.Body = "hi to you ... :)"; SmtpClient client = new SmtpClient(); client.UseDefaultCredentials = true; client.Host = "smtp.gmail.com"; client.Port = 587; client.EnableSsl = true; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.Credentials = new NetworkCredential("[email protected]", "YourPassword"); client.Timeout = 20000; try { client.Send(msg); return "Mail has been successfully sent!"; } catch (Exception ex) { return "Fail Has error" + ex.Message; } finally { msg.Dispose(); } } 

Если вышеуказанный код не работает, попробуйте изменить его, как следующий код:

  SmtpClient client = new SmtpClient(); client.Host = "smtp.gmail.com"; client.Port = 587; client.EnableSsl = true; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential("[email protected]", "YourPassword"); 
Давайте будем гением компьютера.