从C#应用程序发送邮件

时间:2015-10-31 23:21:35

标签: c# winforms email gmail visual-studio-2015

我正在尝试从我的Windows窗体应用程序发送一封电子邮件。我看过很多类似的帖子,但似乎都没有。但是,当我在gmail中更改我的设置以允许不太安全的应用程序时,代码可以运行。但我不想让我的帐户对此应用程序容易受到攻击。如果我不允许不太安全的应用,我会得到代码和错误。

MailMessage mail = new MailMessage("abc@gmail.com", "xyz@gmail.com", "Test Automation", "Did you receive this?");
SmtpClient client = new SmtpClient("smtp.gmail.com");
client.Port = 587;
client.Credentials = new NetworkCredential("abc@gmail.com", "password");
client.EnableSsl = true;
client.Send(mail);
MessageBox.Show("Mail Sent", "success");
  

类型' System.Net.Mail.SmtpException'未处理的例外情况。   发生在System.dll

中      

其他信息:SMTP服务器需要安全连接   或者客户端未经过身份验证。服务器响应是:5.5.1   需要验证。

请帮忙!

P.S。 :我使用我的Gmail创建了一个Outlook帐户,当我输入oulook服务器和凭据时,代码可以运行。那么新gmail安全性更改的问题是什么?其他类似的问题已经解决了他们的问题,但在尝试了几乎所有解决方案之后我仍然遇到相同的错误。

1 个答案:

答案 0 :(得分:1)

如果您没有2因素

启用“安全性较低的应用”

https://www.google.com/settings/security/lesssecureapps

如果您有2因素身份验证

您可以制作“应用密码”。转到下面的Ling并添加一个自定义应用程序(只需写下您想要的任何名称,名称并不重要,仅用于您自己的“簿记”)然后使用该密码作为密码。

client.Credentials = new NetworkCredential("From@gmail.com", "Generated Password");

https://security.google.com/settings/u/1/security/apppasswords

注意: 如果您“您要查找的设置无法用于您的帐户”,请使用“安全性较低的应用”