我将我的web应用程序部署到我们的生产IIS 6.0服务器上,除了我的代码试图将电子邮件发送到不在我们电子邮件服务器域中的地址之外,一切都在工作。我见过各种各样的症状,但这似乎是最直接的描述:
参数或参数中的语法错误。服务器响应为: 5.7.1此系统未配置为中继邮件
我的web应用程序获取这个错误信息使用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服务器上),并且没有任何“中继”问题。
使用web.config的旧版本的System.Web.Mail不包含任何与SMTP相关的内容!
如果我突然需要将用户名和密码添加到上面的smtp设置中,为什么在开发过程中我从来不需要“凭据”?
我对SMTP不太了解,甚至不知道该问邮件服务器管理员什么。我对do...thanks的内容感到非常困惑。
发布于 2010-07-13 22:22:27
在我看来,这个旧的应用程序正在直接将消息发送给收件人服务器,并且正在完全绕过您的本地邮件服务器。这可能是因为您的应用程序没有配置邮件服务器,所以默认返回到尝试发送邮件本身。
这通常是个坏主意,因为它可能会导致应用程序的延迟,具体取决于收件人邮件服务器配置(我们在这里讨论的是秒)。此外,如果你没有被配置为处理像灰色名单等事情,那么你可以有大量的电子邮件,你认为是发送的,但从来没有真正到达。
您应该要求邮件服务器管理员正确配置您的本地邮件服务器,以允许从您的计算机中继。
或者(这是更安全的方法)
您应该在本地邮件服务器上设置一个用户,并让您的应用程序在尝试发送电子邮件时使用这些登录凭据。
systemnetmail.com站点可能会有所帮助。特别是smtp配置上的页面。
https://stackoverflow.com/questions/3242005
复制相似问题