我将我的 Web 应用程序部署到我们的生产 IIS 6.0 服务器,并且一切正常,除非我的代码尝试将电子邮件发送到不在我们的电子邮件服务器域中的地址。我见过各种症状,但这似乎是最直接的描述:
参数或参数中的语法错误。服务器响应为:5.7.1 此系统未配置为中继邮件
我的网络应用程序收到此错误消息使用 System.Net.Mail。它与应该替换的使用 System.Web.Mail 的旧 Web 应用程序一起存在。同一台机器上有一个 SMTP 服务器,似乎需要一些关于中继的新配置。
检查 SMTP 服务器属性显示没有为“中继限制”配置任何内容。旧的生产 Web 应用程序使用如上所述配置的 SMTP 服务器发送电子邮件而不会出错。
所以,总而言之,使用 System.Net.Mail 是否需要与 System.Web.Mail 不同的东西来中继电子邮件?
具有中继问题的较新版本的 web.config 包含:
<system.net><mailSettings><smtp><network host="mail.cbmiweb.com" port="25"/></smtp>
我在所有测试中都使用了上面的值(首先在我的本地主机上使用 XP IIS 5.1;然后在我们 LAN 中的暂存 IIS 6.0 服务器上)并且从未遇到任何“中继”问题。
使用 System.Web.Mail 的旧版本的 web.config 不包含任何与 SMTP 相关的内容!
如果我突然需要在上面的 smtp 设置中添加用户名和密码,为什么我在开发过程中从来不需要“凭据”?
我对 SMTP 了解不多,甚至不知道该向邮件服务器管理员询问什么。我很困惑该怎么做...谢谢。