无法在C#中发送邮件:system.dll出错

时间:2015-08-07 22:12:50

标签: c# email smtp gmail

我正在尝试使用此代码,以便使用他输入的邮件向用户发送密码。

                    SmtpClient client = new SmtpClient();
                    client.Port = 587;
                    client.Host = "smtp.gmail.com";
                    client.EnableSsl = true;
                    client.Timeout = 10000;
                    client.DeliveryMethod = SmtpDeliveryMethod.Network;
                    client.UseDefaultCredentials = false;
                    client.Credentials = new System.Net.NetworkCredential("fzc.solutions@gmail.com", "********");
                    //de qui, a qui, objet, sujet
                    MailMessage mm = new MailMessage("bluepenlabs.aux@gmail.com", "fzc.solutions@gmail.com", "test", "test");
                    mm.BodyEncoding = UTF8Encoding.UTF8;
                    mm.DeliveryNotificationOptions = DeliveryNotificationOptions.OnFailure;

                    client.Send(mm);

这是错误:

  

Une例外非géréedu'System.Net.Mail.SmtpException's'est   produite dans System.dll

     

信息supplémentaires:Le serveur SMTP requiert une connexion   sécuriséeouleclientn'étaitpasauthentifié。 Lareéponseduserveur   était:5.5.1需要验证。

了解更多信息

我会在这里翻译:

  

“System.Net.Mail.SmtpException”类型的未处理异常   发生在System.dll

中      

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

了解更多信息

虽然我尝试了两个不同的gmails帐户,同样的错误,我确定密码是正确的。当我将端口更改为465时,我收到此错误:

  

“System.Net.Mail.SmtpException”类型的未处理异常   发生在System.dll中   附加信息:操作超时已到期。

我将Timeout设置为10000,20000甚至100000仍然没有!

请帮助谢谢!

2 个答案:

答案 0 :(得分:1)

请注意gmail"锁定"如果您尝试了几次但没有成功,该帐户。我用我的私人Gmail帐户尝试了不同的代码示例,一切都失败了。当我读到GMail的要求时,我创建了一个新的gmail帐户并获得了相同的代码。

代码与您的代码非常相似,但NetworkCredentials除外。这是代码来自另一个StackOverflow问题(尝试使用我的私人帐户但没有成功,因为多次尝试):Send email using System.Net.Mail through gmail

  //Code
  MailMessage mail = new MailMessage();
  mail.From = new System.Net.Mail.MailAddress("***@gmail.com");
  SmtpClient smtp = new SmtpClient();
  smtp.Port = 587; 
  smtp.EnableSsl = true;
  smtp.DeliveryMethod = SmtpDeliveryMethod.Network; 
  smtp.UseDefaultCredentials = false; 
  smtp.Credentials = new NetworkCredential(mail.From.Address, "****");  
  smtp.Host = "smtp.gmail.com";

  //recipient
  mail.To.Add(new MailAddress("***@gmail.com"));

  mail.IsBodyHtml = true;
  string st = "Test";

  mail.Body = st;
  smtp.Send(mail);

答案 1 :(得分:0)

默认情况下,Gmail帐户禁用低安全应用访问权限的访问权限。 可以通过在安全选项下的电子邮件帐户中访问低安全性应用来解决此错误。