也许这更像是一个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机器。
答案 0 :(得分:1)
您的评估是正确的。
您可以切换到使用经过身份验证的连接,或者将代码将运行的所有IP /域添加到中继例外列表。