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

时间:2016-02-26 09:22:37

标签: c# email smtpclient

我正在测试基于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实现中缺少什么?

1 个答案:

答案 0 :(得分:0)

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