2017-08-29 112 views
2

这段代码给我一些问题,当我运行它。它不发送消息,它说错误在smtp.Send(mm);我解决不了当我运行这段代码时,它给出了错误(smtp.Send(mm);)我不知道如何解决它

if (!string.IsNullOrEmpty(password)) 
    { 
     System.Net.Mail.MailMessage mm = new System.Net.Mail.MailMessage("[email protected]", Username.Text.Trim()); 
     mm.Subject = "Password Recovery"; 
     mm.Body = string.Format("Hi {0},<br /><br />Your password is {1}.<br /><br />Thank You.", username, password); 
     mm.IsBodyHtml = true; 
     System.Net.Mail.SmtpClient smtp = new System.Net.Mail.SmtpClient(); 
     smtp.Host = "smtp.gmail.com"; 
     smtp.EnableSsl = true; 
     System.Net.NetworkCredential NetworkCred = new System.Net.NetworkCredential(); 
     NetworkCred.UserName = "[email protected]"; 
     NetworkCred.Password = "<Password>"; 
     smtp.UseDefaultCredentials = true; 
     smtp.Credentials = NetworkCred; 
     smtp.Port = 587; 
     smtp.Send(mm); // the error is here. 
     lblMessage.ForeColor = System.Drawing.Color.Green; 
     lblMessage.Text = "Password has been sent to your email address."; 
    } 
    else 
    { 
     lblMessage.ForeColor = System.Drawing.Color.Red; 
     lblMessage.Text = "This email address does not match our records."; 
    } 
} 
+1

你的问题与'asp.net'或'sql-server'有什么关系? – Luiso

+3

什么是错误?你能把异常信息放入问题中吗? –

+0

如果您启用SSL,请尝试使用端口465。如果您禁用SSL使用端口587 – MIKE

回答

1

我相信你正在运行到与我得到它通过在这些线路上提供我的真实Gmail帐户信息工作的SMTP服务器的安全性问题:"<Password>"似乎并不像它会工作。

NetworkCred.UserName = "[email protected]"; 
    NetworkCred.Password = "myPassword"; 

然后打开我的Gmail帐户上的设置,以允许不太安全的应用程序访问它。

仅供参考,对于其他人来说,这是我改变之前的错误。

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

相关问题