Cómo enviar un correo electrónico con C # a través de Gmail
Recibo un error al intentar enviar un correo electrónico a través de mi servicio web. He intentado habilitar el acceso a aplicaciones menos seguras, deshabilitando la verificación en dos pasos e iniciando sesión en la cuenta a través de un navegador web. Ninguna de las soluciones en SO ha funcionado para mí. Todavía estoy recibiendo:
Error: System.Net.Mail.SmtpException: el servidor SMTP requiere una conexión segura o el cliente no se autenticó. La respuesta del servidor fue: 5.5.1 Se requiere autenticación.
¿Qué puedo hacer para solucionar este problema?
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;
}
}
}