0

问题:

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

问题:

  1. 可能没有为标签的属性host或标签的属性提供正确的名称。结果,mvc 应用程序尝试在 localhost 上查找邮件服务器。这个推理正确吗?clientDomain<network>

  2. 我已获得类型为 clientDomain="myhost1.mydomain.co.uk" 的客户端域名。但是,我尝试不是通过 Internet 连接,而是通过客户端的 Intranet 连接。我不应该有一个反映我通过 Intranet 连接的 clientDomain 属性吗?

  3. 该网站使用 SSL。我尝试使用 enableSsl 属性无济于事。但是,我认为 enableSsl 属性与与邮件服务器的通信有关,而不是与网络服务器通信。这个对吗?由于邮件服务器在他们的内部网络上,我理解他们没有为邮件服务器使用 SSL。

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

编辑:

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

4

1 回答 1

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

但是,正如《丛林之书》所说,那是另一回事了。

于 2013-04-03T12:42:24.327 回答