如何在专用服务器中使用IIS6 SMTP从ASP.NET发送邮件?

时间:2020-03-06 14:23:56  来源:igfitidea点击:

我正在尝试配置一个运行ASP.NET的专用服务器,以通过本地IIS SMTP服务器发送邮件,但是邮件被卡在Queue文件夹中并且无法传递。

我在.aspx页面中使用以下代码进行测试:

<%@ Page Language="C#" AutoEventWireup="true" %>

<% new System.Net.Mail.SmtpClient("localhost").Send("[email protected]", 
    "[email protected]", "testing...", "Hello, world.com"); %>

然后,我将以下内容添加到Web.config文件中:

<system.net>
  <mailSettings>
    <smtp>
      <network host="localhost"/>
    </smtp>
  </mailSettings>
</system.net>

在IIS管理器中,我更改了"默认SMTP虚拟服务器"的属性中的以下内容。

General: [X] Enable Logging
Access / Authentication: [X] Windows Integrated Authentication
Access / Relay Restrictions: (o) Only the list below, Granted 127.0.0.1
Delivery / Advanced: Fully qualified domain name = thedomain.com

最后,我运行SMTPDiag.exe工具,如下所示:

C:\>smtpdiag.exe [email protected] [email protected]

Searching for Exchange external DNS settings.
Computer name is THEDOMAIN.
Failed to connect to the domain controller. Error: 8007054b

Checking SOA for gmail.com.
Checking external DNS servers.
Checking internal DNS servers.
SOA serial number match: Passed.

Checking local domain records.
Checking MX records using TCP: thedomain.com.
Checking MX records using UDP: thedomain.com.
Both TCP and UDP queries succeeded. Local DNS test passed.

Checking remote domain records.
Checking MX records using TCP: gmail.com.
Checking MX records using UDP: gmail.com.
Both TCP and UDP queries succeeded. Remote DNS test passed.

Checking MX servers listed for [email protected].
Connecting to gmail-smtp-in.l.google.com [209.85.199.27] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to gmail-smtp-in.l.google.com.
Connecting to gmail-smtp-in.l.google.com [209.85.199.114] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to gmail-smtp-in.l.google.com.
Connecting to alt2.gmail-smtp-in.l.google.com [209.85.135.27] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt2.gmail-smtp-in.l.google.com.
Connecting to alt2.gmail-smtp-in.l.google.com [209.85.135.114] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt2.gmail-smtp-in.l.google.com.
Connecting to alt1.gmail-smtp-in.l.google.com [209.85.133.27] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt1.gmail-smtp-in.l.google.com.
Connecting to alt2.gmail-smtp-in.l.google.com [74.125.79.27] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt2.gmail-smtp-in.l.google.com.
Connecting to alt2.gmail-smtp-in.l.google.com [74.125.79.114] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt2.gmail-smtp-in.l.google.com.
Connecting to alt1.gmail-smtp-in.l.google.com [209.85.133.114] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to alt1.gmail-smtp-in.l.google.com.
Connecting to gsmtp183.google.com [64.233.183.27] on port 25.
Connecting to the server failed. Error: 10060
Failed to submit mail to gsmtp183.google.com.
Connecting to gsmtp147.google.com [209.85.147.27] on port 25.
Connecting to the server failed. Error: 10051
Failed to submit mail to gsmtp147.google.com.

我正在使用ASP.NET 2.0,Windows 2003 Server及其随附的IIS。

我们能告诉我要解决的问题吗?

谢谢

@mattlant

这是一台专用服务器,这就是为什么我要手动安装SMTP的原因。

EDIT: I use exchange so its a little
  different, but its called a smart host
  in exchange, but in plain SMTP service
  config i think its called something
  else. Cant remember exactly the
  setting name.

感谢我们将我指向"智能主机"字段。现在邮件已送达。

在"默认SMTP虚拟服务器"属性的"传递"选项卡中,单击"高级",然后使用提供商提供的地址填充"智能主机"字段。以我的情况(GoDaddy)为k2smtpout.secureserver.net。

此处提供更多信息:http://help.godaddy.com/article/1283

解决方案

我发现通常最好的方法是根据ISP的SMTP服务器转发邮件,具体取决于邮件的数量。少头痛。从SMTP到外部服务器,而不是asp.net到SMTP,这似乎是我们遇到问题的地方。

只需将SMTP服务器设置为将其发送到ISP,或者我们可以配置asp.net来发送给它。

编辑:我使用交换,所以它有点不同,但是它被称为交换中的智能主机,但是在简单的SMTP服务配置中,我认为它被称为其他东西。

我不记得确切的设置名称了。

从外观上看,防火墙不会使SMTP(TCP端口25)出入网络。

两个非常明显的问题(以防万一它们未被覆盖)
1.是否已禁用Windows防火墙?
2.我们是否有个人/公司防火墙阻止邮件发送?