【问题标题】:Unable to connect to the remote server,无法连接到远程服务器,
【发布时间】:2021-11-10 21:46:00
【问题描述】:

简单地说,我想在我的 mvc aspnet 应用程序中发送一封电子邮件。我的操作方法如下:

 SmtpClient mailClient = new SmtpClient("127.0.0.1");
 NetworkCredential cred = new NetworkCredential("my mail address", "my password");
 mailClient.Credentials = cred;
 MailMessage contact = new MailMessage();
 contact.From = new MailAddress("my mail address");
 contact.Subject = "Subject";
 contact.IsBodyHtml = true;
 contact.Body = "Body";
 mailClient.EnableSsl = true;
 contact.To.Add("someone's mail address");
 mailClient.Send(contact);

但是当我尝试这个时,我得到了这样的错误:

System.Net.Mail.SmtpException : {"发送邮件失败。"}

内部异常:{“无法连接到远程服务器”}

我搜索了类似的解决方案,但他们说您需要设置凭据,但我确定我正确设置了凭据。 Windows 防火墙也已关闭。 提前致谢。

【问题讨论】:

  • 显而易见的问题 - 您是否在本地计算机上运行 SMTP 服务器?
  • 显而易见的问题 2.0 - 您是否允许连接 SMTP 端口(25 或 2525 或 587)?防火墙或 SMTP 服务器本身可以阻止连接。另外,您使用的是哪个端口?是对的吗?

标签: c# asp.net-mvc email


【解决方案1】:

对不起,你的例外已经很明显了!

您好像在非 SMTP 服务器上尝试过。设置一个,然后它应该可以工作了。

=>System.Net.Mail.SmtpException : {"Failure sending mail."}

否则,只需检查您与服务器的连接/权限。

=>Inner Exception : {"Unable to connect to the remote server"}

【讨论】:

  • 它(异常消息)并不一定意味着他没有设置 SMTP 服务器。 可能意味着他尝试使用的 SMTP 端口被某些软件(例如防火墙)阻止。这也可能意味着 smtp 服务器未在默认端口 (25) 上侦听。明智的解决方案是尝试通过 telnet 连接以测试连接是否可用。
  • 好吧,我没想过尝试通过 telnet 连接...但它也不是你说的端口(25)!
  • 我已经禁用了 ssl 并设置了 root 587 现在它可以工作了,谢谢 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-04-20
  • 2011-04-29
  • 2010-11-13
  • 2017-06-26
  • 2016-12-25
相关资源
最近更新 更多