首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >无法通过MailMessage和smtpClient验证Gmail smtp

无法通过MailMessage和smtpClient验证Gmail smtp
EN

Stack Overflow用户
提问于 2012-02-02 06:57:29
回答 11查看 36.4K关注 0票数 20

我怎么也搞不懂为什么这不管用。

SmtpClient smtp = new SmtpClient
{
    Host = "smtp.gmail.com",
    Port = 587,
    UseDefaultCredentials = false,
    DeliveryMethod = SmtpDeliveryMethod.Network,
    Credentials = new NetworkCredential("myemail@gmail.com", "myGmailPasswordHere"),
    EnableSsl = true,
    Timeout = 10000
};


smtp.Send(mail);

我得到了:

服务器需要安全连接,或者客户端未经过身份验证。服务器响应为: 5.5.1需要身份验证。

我只是将EnableSsl指定为true,所以这不应该是安全连接方面的问题。

我从localhost运行这个程序。是的,我输入的用户名和密码(我的gmail帐户凭证)是100%正确的。

EN

回答 11

Stack Overflow用户

发布于 2014-08-21 04:44:59

我知道这是个老话题但是..。谷歌已经改变了他们的安全设置。

我一直在为所有的答案而苦苦挣扎,直到我用一封来自谷歌的邮件检查了我的电子邮件,说“我们最近阻止了一次登录你的谷歌账户的尝试”。

这将我带到了这个页面:Google Account Security

在“访问安全性较低的应用程序”部分下,您可以启用从其他设备/应用程序访问您的帐户...例如您的C#应用程序。

请注意,不再有“特定于应用程序”部分。

希望这对某些人有帮助。我刚刚失去了生命中的30分钟...

票数 40
EN

Stack Overflow用户

发布于 2012-07-17 06:18:57

如果登录信息是100%正确的,您需要设置UseDefaultCredentials = false first,然后设置要使用Credentials = new NetworkCredential("myemail@gmail.com", "myGmailPasswordHere")的凭据。

如果先设置凭据,则在设置UseDefaultCredentials = false时,Credentials属性将设置为null

这是连线的,但它发生在我身上。

在调用smtp.Send(message);之前,调试代码并检查Credentials属性是否为空。如果是这样,那么尝试颠倒顺序。看起来它的顺序是正确的,但是如果它是空的,就不要使用内联初始化。

希望能有所帮助。

EDIT:如果使用两步验证,请确保使用的是App Specific password

票数 22
EN

Stack Overflow用户

发布于 2012-02-02 22:52:28

看起来Gmail需要特定于应用程序的密码(而不是你的主密码)。

请查看以下内容:http://support.google.com/mail/bin/answer.py?hl=en&answer=1173270

最近我也遇到了同样的问题。

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9104645

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档