我正在尝试从Windows窗体应用程序发送电子邮件。我见过很多类似的帖子,但似乎都没有用。但是,当我更改gmail中的设置以允许安全性较差的应用程序使用时,代码就会起作用。但是我不想让我的帐户容易受到该应用程序的攻击。如果我不允许使用安全性较低的应用程序,则会出现以下代码和错误。
MailMessage mail = new MailMessage("[email protected]", "[email protected]", "Test Automation", "Did you receive this?");
SmtpClient client = new SmtpClient("smtp.gmail.com");
client.Port = 587;
client.Credentials = new NetworkCredential("[email protected]", "password");
client.EnableSsl = true;
client.Send(mail);
MessageBox.Show("Mail Sent", "success");
System.dll中发生了类型为'System.Net.Mail.SmtpException'的未处理异常
附加信息:SMTP服务器需要安全连接,或者客户端未通过身份验证。服务器响应为:5.5.1需要身份验证。
请帮忙!
PS:我使用gmail创建了一个Outlook帐户,当我将oulook服务器和凭据放入时,代码就可以了。那么新的Gmail安全性更改是否会带来问题?其他类似的问题也已解决,但在尝试几乎所有解决方案后,我仍然遇到相同的错误。
如果你没有两个因素
启用“安全性降低的应用程序”
https://www.google.com/settings/security/lesssecureapps
如果您具有2要素身份验证
您可以输入“应用密码”。转到下面的列表中,添加一个自定义应用程序(只需输入您想要的任何名称,该名称对于您自己的“簿记”来说并不重要),然后使用该密码作为密码。
client.Credentials = new NetworkCredential("[email protected]", "Generated Password");
https://security.google.com/settings/u/1/security/apppasswords
注意:如果收到“您正在寻找的设置不适用于您的帐户”,请使用“安全性较低的应用”
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句