通过Intranet连接到邮件服务器

时间:2013-04-02 13:47:32

标签: asp.net asp.net-mvc-4 smtp smtpclient

问题:

我正在尝试连接到远程邮件服务器以从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上的邮件服务器。这种推理是否正确?

问题:

  1. 我可能没有为hostclientDomain标记的<network>属性指定正确的名称。因此,mvc应用程序尝试在localhost上查找邮件服务器。这种推理是否正确?

  2. 我收到了clientDomain =“myhost1.mydomain.co.uk”类型的clientDomain名称。但是,我试图不通过互联网连接,而是通过客户端的内部网连接。我是否应该没有反映我通过Intranet连接的clientDomain属性?

  3. 该网站使用SSL。我尝试使用enableSsl属性无济于事。但是,我认为enableSsl属性与邮件服务器的通信有关,而不是与Web服务器的通信。它是否正确?由于邮件服务器位于其内部网络上,因此我们理解,它们不是使用SSL作为邮件服务器。

  4. 另一种理论是,有一个防火墙问题让我从邮件服务器盒中弹出。但是如果是这样的话,我肯定会得到一个更具体的错误......?

  5. 编辑:

    我是否需要在网络服务器上安装SMTPclient才能连接到另一个盒子上的邮件服务器?

1 个答案:

答案 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

但是,正如丛林书所说,这是另一个故事。