如何使用TLS和System.Net.Mail.SMTPCLient连接到 googlemail.com



我正在测试一个基于System.Net.Mail.SmtpClient类的正常工作的电子邮件模块(.Net 4.5.2,C#),我已经添加了对TLS的支持。为此,我尝试使用与浏览器相同的 smtp 设置连接到我的个人 googlemail.com 帐户。我已将 SmtpClient 对象设置为

SmtpClient mailer = new SmtpClient(); 
mailer.Host = "tls://smtp.gmail.com"; 
mailer.Credentials = new System.Net.NetworkCredential("me@googlemail.com","myGooglemailPassword"); mailer.EnableSsl = true;
mailer.UseDefaultCredentials = true; // although msdn states that this is necessary for TLS, it doesn't actually seeme to make any difference 
mailer.Port = 587; 
var message = new MailMessage();
message.Subject="dontcare"; 
message.Body = "dontcare"
message.To.Add("me@googlemail.com"); 
message.From = new MailAddress("myBusinessEmailaddress@somewhere"); 
mailer.Send(message);

问题是这被gmail拒绝

并出现错误

SMTP 服务器需要安全连接或客户端不需要 认证。服务器响应为:5.5.1 需要身份验证。 欲了解更多信息,请访问

鉴于我的 gmail 帐户对我来说可以正常工作,否则我在 .Net 实现中缺少什么?

问题是默认情况下Googlemail/Gmail会阻止它认为"不太安全"的电子邮件来源(Outlook就是一个例子)。您必须在Gmail帐户设置中将其关闭,然后问题就会消失。

最新更新