使用CSharp / .net中的gmail SMTP发送邮件

using(SmtpClient client = new SmtpClient("smtp.gmail.com", 587)) { // Configure the client client.EnableSsl = true; client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(textBox1.Text, textBox3.Text); client.DeliveryMethod = SmtpDeliveryMethod.Network; MailMessage message = new MailMessage( textBox1.Text, // From field textBox2.Text, // Recipient field textBox4.Text, // Subject of the email message richTextBox1.Text // Email message body ); client.Send(message); MessageBox.Show("Email has been sent."); } 

Error: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.5.1 Authentication Required.

我一直在使用gmail收到此错误,但我可以使用其他SMTP服务器发送邮件。 凭证是正确的。

好像Gmail帐户存在安全问题

我也面临同样的问题,然后从这篇文章中找到解决方案。

该post提到您需要更改帐户权限设置并启用“访问安全性较低的应用程序”。

实际上,当您登录到Gmail帐户时,您会收到通知。

  message.To.Add(new MailAddress("abc@abc.com)); // replace with valid value message.From = new MailAddress("abc@abc.com", "Contact Form"); message.Subject = Subject; message.Body = string.Format(NewBody); message.IsBodyHtml = true; using (var smtp = new SmtpClient()) { var credential = new NetworkCredential { UserName = "abc@gmail.com", // replace with valid value Password = "qwerty123456" // replace with valid value }; smtp.Credentials = credential; smtp.Host = "smtp.gmail.com"; smtp.Port = 587; smtp.EnableSsl = true; smtp.Send(message); } 

只是这是我可以使用它的工作代码,只有这个代码的问题是有时邮件是垃圾邮件文件夹。

您需要为您的Gmail帐户启用两步validation并获取应用程序密码。 然后使用该密码而不是常规密码。