C# SMTP服务器需要安全连接,或者客户端未经过身份验证--连接超时

C# SMTP服务器需要安全连接,或者客户端未经过身份验证--连接超时,c#,email,email-validation,C#,Email,Email Validation,这个问题已经被问过了&我已经试过了在堆栈溢出中发现的每一件事&我的头撞到了墙上,不知道我到底在哪里出错,反正这是我的代码 using (MailMessage mm = new MailMessage("sender@gmail.com", txtEmail.Text)) { mm.Subject = "Account Activation"; string body = "Hello " + txtUsername.Text.Trim() + ","; body +=

这个问题已经被问过了&我已经试过了在堆栈溢出中发现的每一件事&我的头撞到了墙上,不知道我到底在哪里出错,反正这是我的代码

using (MailMessage mm = new MailMessage("sender@gmail.com", txtEmail.Text))
{
    mm.Subject = "Account Activation";
    string body = "Hello " + txtUsername.Text.Trim() + ",";
    body += "<br /><br />Please click the following link to activate your account";
    body += "<br /><a href = '" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "'>Click here to activate your account.</a>";
    body += "<br /><br />Thanks";
    mm.Body = body;
    mm.IsBodyHtml = true;
    SmtpClient smtp = new SmtpClient();
    smtp.Host = "smtp.gmail.com";
    smtp.Port = 587;
    smtp.EnableSsl = true;
    smtp.UseDefaultCredentials = false;
    NetworkCredential NetworkCred = new NetworkCredential("sender@gmail.com", "password");
    smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
    smtp.Credentials = NetworkCred;
    smtp.Send(mm);
}
使用(MailMessage mm=新的MailMessage(“sender@gmail.com“,txtEmail.Text))
{
mm.Subject=“账户激活”;
string body=“Hello”+txtUsername.Text.Trim()+”,“;
body+=“

请单击以下链接激活您的帐户”; 正文+=“
”; 正文+=“

谢谢”; mm.主体=主体; mm.IsBodyHtml=true; SmtpClient smtp=新SmtpClient(); smtp.Host=“smtp.gmail.com”; smtp.Port=587; smtp.EnableSsl=true; smtp.UseDefaultCredentials=false; NetworkCredential NetworkCred=新的网络凭据(“sender@gmail.com“,”密码“); smtp.DeliveryMethod=System.Net.Mail.SmtpDeliveryMethod.Network; smtp.Credentials=NetworkCred; smtp.Send(mm); }

我尝试过将默认凭据更改为false,但我注意到,当我将端口号从587更改为465时,连接超时。

我认为您可能过于复杂了。您不需要使用NetworkCredential。应该是这样的:

using (MailMessage mm = new MailMessage("sender@gmail.com", txtEmail.Text))
{
    mm.Subject = "Account Activation";
    string body = "Hello " + txtUsername.Text.Trim() + ",";
    body += "<br /><br />Please click the following link to activate your account";
    body += "<br /><a href = '" + Request.Url.AbsoluteUri.Replace("CS.aspx", "CS_Activation.aspx?ActivationCode=" + activationCode) + "'>Click here to activate your account.</a>";
    body += "<br /><br />Thanks";
    mm.Body = body;
    mm.IsBodyHtml = true;
    SmtpClient smtp = new SmtpClient();
    smtp.Host = "smtp.gmail.com";
    smtp.Port = 465;
    smtp.ConnectType = SmtpConnectType.ConnectSSLAuto;
    smtp.User = "gmailid@gmail.com";
    smtp.Password = "yourpassword";
    smtp.Send(mm);
}
使用(MailMessage mm=新的MailMessage(“sender@gmail.com“,txtEmail.Text))
{
mm.Subject=“账户激活”;
string body=“Hello”+txtUsername.Text.Trim()+”,“;
body+=“

请单击以下链接激活您的帐户”; 正文+=“
”; 正文+=“

谢谢”; mm.主体=主体; mm.IsBodyHtml=true; SmtpClient smtp=新SmtpClient(); smtp.Host=“smtp.gmail.com”; smtp.Port=465; smtp.ConnectType=SmtpConnectType.ConnectSSLAuto; smtp.User=”gmailid@gmail.com"; smtp.Password=“yourpassword”; smtp.Send(mm); }