使用SmtpClient从Gmail发送电子邮件

我正在尝试通过SmtpClient连接到我的Gmail帐户,但它似乎无法正常工作。 我指定端口465,启用SSL并定义所有内容,但它需要2分钟,然后只显示一些错误消息未发送。

我在这做错了什么?

 try { MailMessage msg = new MailMessage(); msg.From = new MailAddress("myemail@gmail.com); msg.To.Add(new MailAddress("theiremil@email.com)); msg.Subject = "This is the subject"; msg.Body = "This is the body"; SmtpClient sc = new SmtpClient("smtp.gmail.com", 465); sc.EnableSsl = true; sc.UseDefaultCredentials = false; sc.Credentials = new NetworkCredential("myemail@gmail.com", "pass"); sc.DeliveryMethod = SmtpDeliveryMethod.Network; sc.Send(msg); erroremail.Text = "Email has been sent successfully."; } catch (Exception ex) { erroremail.Text = "ERROR: " + ex.Message; } 

您需要允许“不太安全的应用”:

https://support.google.com/accounts/answer/6010255

码:

 try { new SmtpClient { Host = "Smtp.Gmail.com", Port = 587, EnableSsl = true, Timeout = 10000, DeliveryMethod = SmtpDeliveryMethod.Network, UseDefaultCredentials = false, Credentials = new NetworkCredential("MyMail@Gmail.com", "MyPassword") }.Send(new MailMessage {From = new MailAddress("MyMail@Gmail.com", "MyName"), To = {"TheirMail@Mail.com"}, Subject = "Subject", Body = "Message", BodyEncoding = Encoding.UTF8}); erroremail.Text = "Email has been sent successfully."; } catch (Exception ex) { erroremail.Text = "ERROR: " + ex.Message; }