我正在尝试连接到远程邮件服务器以从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客户端或服务器。这需要吗?
客户几乎没有托管自己的网络服务器的经验。我一直使用托管公司的说明连接到邮件服务器。该公司似乎没有任何具有专业知识的人。我是外部顾问,没有网络或邮件服务器方面的经验。
<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
或clientDomain
标记的<network>
属性指定正确的名称。因此,mvc应用程序尝试在localhost上查找邮件服务器。这种推理是否正确?
我收到了clientDomain =“myhost1.mydomain.co.uk”类型的clientDomain名称。但是,我试图不通过互联网连接,而是通过客户端的内部网连接。我是否应该没有反映我通过Intranet连接的clientDomain属性?
该网站使用SSL。我尝试使用enableSsl属性无济于事。但是,我认为enableSsl属性与邮件服务器的通信有关,而不是与Web服务器的通信。它是否正确?由于邮件服务器位于其内部网络上,因此我们理解,它们不是使用SSL作为邮件服务器。
另一种理论是,有一个防火墙问题让我从邮件服务器盒中弹出。但是如果是这样的话,我肯定会得到一个更具体的错误......?
我是否需要在网络服务器上安装SMTPclient才能连接到另一个盒子上的邮件服务器?
答案 0 :(得分:0)
好的,我已经解决了这个问题:我的邮件发送程序中有以下代码:
SmtpClient client = new SmtpClient("localhost");
client.Send(message);
请注意硬编码的"localhost"
。
唯一的问题是现在它给了我以下错误:
Mailbox unavailable. The server response was: 5.7.1 Unable to relay for abc@xyz.efg
但是,正如丛林书所说,这是另一个故事。