我正在测试基于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实现中缺少什么?
答案 0 :(得分:0)
问题在于,默认情况下,Googlemail / Gmail会屏蔽其认为不太安全的电子邮件来源。 (Outlook就是一个例子)。您必须在Gmail帐户设置中将其关闭,然后问题就会消失。