.NET中的SMTP中继问题

时间:2010-01-22 23:45:42

标签: .net email iis smtp windows-server-2003

也许这更像是一个IIS问题,而不是编程,但我会把它扔到那里。

我正尝试使用以下测试代码通过SMTP发送电子邮件:

//params: from email, to email, subject, body
MailMessage m = new MailMessage( <sendemail>, <receiveemail>, "testsubject", "Testbody" );

SmtpClient c = new SmtpClient( <SMTP Server> );

c.Send( m );

非常简单。由于SMTP服务器上的配置,我完全避免凭据:

alt text http://img683.imageshack.us/img683/8909/smtp1.png

这应该允许我在没有凭据的情况下进行连接。 或者我尝试使用空字符串作为用户名/密码和默认凭据。

当我发送尝试发送时,我收到“发送SMTP电子邮件失败并出现以下错误:邮箱不可用。服务器响应为:5.7.1无法中继”错误。我转到IIS的中继部分,它如下:

alt text http://img192.imageshack.us/img192/5002/smtp2.png

所以我的想法是即使启用了“允许所有成功通过身份验证的计算机”选项,因为我允许匿名身份验证,我的应用程序无法中继。是这样的吗?如果是这样,我如何修复我的代码才能进行中继?我已经尝试过向域内外的电子邮件发送消息,但无济于事。这是一台服务器2003机器。

1 个答案:

答案 0 :(得分:1)

您的评估是正确的。

您可以切换到使用经过身份验证的连接,或者将代码将运行的所有IP /域添加到中继例外列表。