ASP.Net Gmail 无法通过端口 587 发送电子邮件



我尝试使用以下代码通过 ASP.Net 2.0发送电子邮件:

  int port=465;
  //int port=587;
  SmtpClient smtpClient = new SmtpClient("smtp.gmail.com", port);
  smtpClient.Timeout = 260000;
  smtpClient.Credentials = new System.Net.NetworkCredential("mygmail@gmail.com", password);
  smtpClient.UseDefaultCredentials =false;
  smtpClient.DeliveryMethod = SmtpDeliveryMethod.Network;
  smtpClient.EnableSsl = true;
  MailMessage mail = new MailMessage();
  //Setting From , To and CC
  mail.From = new MailAddress(from);
  mail.To.Add(new MailAddress("myaddress@mydomain.com"));
  mail.Body = contents;
  smtpClient.Send(mail);

我检查了解决方案,使用了 2 个端口:465 和 587。端口 587 似乎在 2-3 年前有效。

我都试过了,结果如下:

  • 端口 465,超时 4 分钟:在我的本地主机和与 ISP 不同的服务器上始终超时
  • 端口 587,超时 4 分钟: 我立即在本地主机和ISP站点中收到此响应:

SMTP 服务器需要安全连接或客户端不需要 认证。服务器响应为:5.5.1 需要身份验证

我应该更改什么?

使用端口 587 并首先设置UseDefaultCredentials,然后设置Credentials

smtpClient.UseDefaultCredentials =false;
smtpClient.Credentials = new System.Net.NetworkCredential("mygmail@gmail.com", password);

如果先设置凭据,则在将UseDefaultCredentials设置为 false 时将丢失它

最新更新