Pos*_*Guy 19 c# gmail smtpclient
我无法弄清楚为什么这不起作用的生活
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);
Run Code Online (Sandbox Code Playgroud)
我明白了:
SMTP服务器需要安全连接或客户端未经过身份验证.服务器响应为:5.5.1需要身份验证.
我刚刚将EnableSsl指定为true,因此在安全连接方面不应该是问题.
我是从localhost运行的.是的,我输入auth(我的gmail帐户凭据)的用户名和密码是100%正确的.
Tin*_*iny 38
我知道这是一个古老的话题,但是...... Google已经改变了他们的安全设置.
在我使用Google发来的邮件检查我的电子邮件之前,我一直在努力解决所有问题,并说"我们最近阻止了对您Google帐户的登录尝试".
这导致我进入了这个页面: Google帐户安全
在"访问安全性较低的应用"部分下,您可以启用从其他设备/应用程序访问您的帐户...例如您的C#应用程序.
请注意,不再是"特定于应用程序"部分.
希望这有助于某人......我只是失去了30分钟的生命......
edt*_*eke 21
如果登录信息是100%正确的,你需要设置UseDefaultCredentials = false
第一,然后设置要使用的凭据Credentials = new NetworkCredential("myemail@gmail.com", "myGmailPasswordHere")
.
如果首先设置凭据,则设置UseDefaultCredentials = false
此Credentials
属性将使属性为null
.
这是有线的,但它发生在我身上.
Credentials
在调用之前调试代码并检查属性是否为null smtp.Send(message);
.如果是这样,那么尝试颠倒顺序.看起来你的顺序是正确的,但是如果它是null,则不要使用内联初始化.
希望能帮助到你.
编辑:如果您使用两步验证,请确保您使用的是专用密码
Ale*_*kin 11
看起来Gmail需要特定于应用程序的密码(而不是您的主密码).
请查看以下内容:http://support.google.com/mail/bin/answer.py?hl = zh-CN&answer = 1173270
我最近遇到了同样的问题.
<mailSettings>
<smtp from="youremail@gmail.com">
<network host="smtp.gmail.com" password="yourpassword" port="587" userName="username"/>
</smtp>
</mailSettings>
Run Code Online (Sandbox Code Playgroud)
smtp.Credentials = Credentials
编辑:尝试在此之后添加此行
Credentials = new NetworkCredential("myemail@gmail.com", "myGmailPasswordHere"),