【发布时间】:2013-04-02 13:47:31
【问题描述】:
问题:
我正在尝试连接到远程邮件服务器以从 ASP.NET MVC 4 应用程序发送电子邮件。尽管使用我的客户提供的详细信息来设置 web.config,但我收到以下错误:
No connection could be made because the target machine actively refused it 127.0.0.1:25
设置:
我有一个需要发送电子邮件的 ASP.NET MVC 4 网站。邮件服务器没有安装在与网络服务器相同的盒子上。
网络服务器上没有安装 smtp 客户端或服务器。需要这个吗?
客户几乎没有托管自己的网络服务器的经验。我一直使用托管公司的说明连接到邮件服务器。这家公司似乎没有任何人有专业知识。我是一名外部顾问,没有网络或邮件服务器方面的经验。
Web.Config:
<system.net>
<mailSettings>
<smtp deliveryMethod="Network" from="systems@medreport.co.uk">
<network host="MYHOST1" userName="MyUser" password="PASSWORD" clientDomain="myhost1.mydomain.co.uk" />
</smtp>
</mailSettings>
</system.net>
我的推理:
从错误中,似乎 ASP.NET MVC 应用程序正在 localhost 机器上寻找邮件服务器,即与 Web 服务器相同的机器。它不存在,所以我得到了错误。
如果正确,那么我的 web.config 中标签的属性一定有问题。这些属性没有指向有效的服务器,所以我假设系统默认为 localhost 上的邮件服务器。这个推理正确吗?
问题:
我可能没有为
host或<network>标签的clientDomain属性指定正确的名称。结果,mvc 应用程序尝试在 localhost 上查找邮件服务器。这个推理正确吗?我获得了 clientDomain="myhost1.mydomain.co.uk" 类型的客户端域名。但是,我尝试不是通过 Internet 连接,而是通过客户端的 Intranet 连接。我不应该有一个反映我通过 Intranet 连接的 clientDomain 属性吗?
网站使用 SSL。我尝试使用 enableSsl 属性无济于事。但是,我认为 enableSsl 属性与与邮件服务器的通信有关,而不是与网络服务器通信。这个对吗?由于邮件服务器在他们的内部网络上,据我所知,他们没有为邮件服务器使用 SSL。
另一种理论是防火墙问题将我从邮件服务器中弹出。但如果是这种情况,我肯定会得到更具体的错误......?
编辑:
我是否需要在网络服务器上安装 SMTPclient 才能连接到不同盒子上的邮件服务器?
【问题讨论】:
-
他们给你的主机是什么?你能ping通吗?可以试试
<network defaultCredentials="false" host="MYHOST1" password="PASSWORD" userName="MyUser" />吗? -
@RowanFreeman:我可以 ping IP 地址,但是当我使用他们提供的 url 时,我得到:Ping 请求找不到主机。请检查名称并重试。是的,我试过你提到的网络标签属性,但还是不行。
-
@RowanFreeman:一个问题 - 我需要在 Web 服务器上安装 SMTPclient 才能连接到邮件服务器吗?
-
来自命令的消息是什么:
telnet yourSMTPServer 25? -
@BrOSs:是的,现在一切正常。快乐的结局。
标签: asp.net asp.net-mvc-4 smtp smtpclient