Enviando correo usando Gmail

public static bool SendMail(string toList, string from, string ccList, string subject, string body) { MailMessage message = new MailMessage(); SmtpClient smtpClient = new SmtpClient(); try { MailAddress fromAddress = new MailAddress(from); message.From = fromAddress; message.To.Add(toList); if (ccList != null && ccList != string.Empty) message.CC.Add(ccList); message.Subject = subject; message.IsBodyHtml = true; message.Body = body; smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network; smtpClient.EnableSsl = true; smtpClient.Timeout = 30000; smtpClient.Host = "smtp.gmail.com"; // We use gmail as our smtp client smtpClient.Port = 587; smtpClient.UseDefaultCredentials = true; smtpClient.Credentials = new System.Net.NetworkCredential("myemail@gmail.com", "mypassword"); smtpClient.Send(message); return true; } catch (Exception ex) { return false; } } 

El código parece estar bien, pero aún no funciona, no puedo averiguar por qué. Cualquier otra forma de usar smtp de gmail para enviar correo.

tratar

 var client = new SmtpClient("smtp.gmail.com", 587) { Credentials = new NetworkCredential("myusername@gmail.com", "mypwd"), EnableSsl = true }; client.Send("myusername@gmail.com", "myusername@gmail.com", "test", "testbody"); 

Si la propiedad UseDefaultCredentials se establece en false , entonces el valor establecido en la propiedad Credentials se usará para las credenciales cuando se conecte al servidor. Aquí establece UseDefaultCredentials como true entonces descuidará las credenciales que le haya dado.

Por favor intente con el puerto 25. Está funcionando para mí. También elimine la configuración de UseDefaultCredentials.

Actualización: Puerto 587 también trabaja para mí. Así que creo que UseDefaultCredentials es solo un problema en su código. se debe establecer en falso.

 public static void SendMail(string ToMail, string FromMail, string Cc, string Body, string Subject) { SmtpClient smtp = new SmtpClient("smtp.gmail.com", 25); MailMessage mailmsg = new MailMessage(); smtp.EnableSsl = true; smtp.Credentials = new NetworkCredential("email","password"); mailmsg.From = new MailAddress(FromMail); mailmsg.To.Add(ToMail); if (Cc != "") { mailmsg.CC.Add(Cc); } mailmsg.Body = Body; mailmsg.Subject = Subject; mailmsg.IsBodyHtml = true; mailmsg.Priority = MailPriority.High; try { smtp.Timeout = 500000; smtp.Send(mailmsg); mailmsg.Dispose(); } catch (Exception ex) { throw ex; } }