信箱不可用。服务器响应是:5.7.1 无法为 abc@xyz.com 中继 [关闭]
Posted
技术标签:
【中文标题】信箱不可用。服务器响应是:5.7.1 无法为 abc@xyz.com 中继 [关闭]【英文标题】:Mailbox unavailable. The server response was: 5.7.1 Unable to relay for abc@xyz.com [closed] 【发布时间】:2011-03-11 02:13:05 【问题描述】:当我尝试使用 ASP.NET 发送邮件时,我收到“邮箱不可用。服务器响应为:5.7.1 无法为 abc@xyz.com 中继”。该站点部署在IIS7、Windows 2008服务器上。
网站在 IIS6 和 Windows 2003 Server 上运行良好。我将它部署在 IIS7 上,2008 年它开始给我这个错误。
以前有人经历过吗?
【问题讨论】:
Mailbox unavailable. The server response was: 5.7.1 Unable to relay Error 的可能重复项 Stack Overflow 是一个编程和开发问题的网站。使用Stack Exchange network 上的另一个站点。 【参考方案1】:想分享在我的案例中导致错误的原因。花几个小时来解决这个问题,所以希望它可以帮助节省一些时间。
奇怪的是,该错误是在为域启用Enable drop directory quota
设置时引发的。
我不是专家,不知道技术解释,但取消提到的设置可以解决问题。
【讨论】:
【参考方案2】:一张图胜过千言万语..
当您找到 IIS6 管理器时(我发现搜索 IIS 可能会返回 2 个结果)转到 SMTP 服务器属性,然后“访问”,然后按中继按钮。
然后您可以选择全部或只允许某些 ip,例如 127.0.0.1
【讨论】:
【参考方案3】:如果您有 Exchange 2010:
(在我的情况下,错误消息不包含“for abc@xyz.com”)
这显示了如何添加接收连接器:http://exchangeserverpro.com/how-to-configure-a-relay-connector-for-exchange-server-2010/
但我还需要执行此处找到的步骤:http://recover-email.blogspot.com.au/2013/12/how-to-solve-exchange-smtp-server-error.html
转到 Exchange 命令行管理程序并运行命令 获取接收连接器“JiraTest”|添加-ADPermission -用户“NT AUTHORITY\ANONYMOUS LOGON”-ExtendedRights "ms-Exch-SMTP-Accept-Any-Recipient"
在处理此问题时,我在受影响服务器的 PowerShell 控制台上运行了以下命令,直到错误消失:
Send-MailMessage -From "myemail@server.com.au" -To "myemail@server.com.au" -Subject "Test Email" -Body "This is a test"
【讨论】:
【参考方案4】:我可以通过更改 web.config 的 system.net 部分中的邮件设置来解决此问题:
<mailSettings>
<smtp deliveryMethod="Network">
<network host="yourserver" defaultCredentials="true"/>
</smtp>
</mailSettings>
【讨论】:
【参考方案5】:啊,明白了……我成功了 :)
感谢克里斯托弗,您的建议是正确的。
但是,找到“默认 SMTP 虚拟服务器”很棘手;)
即使你使用 IIS7 来部署你的网站,你也必须打开 IIS6 管理器来配置 SMTP 服务器(为什么?)。
我如下配置了 SMTP 服务器以使其正常工作:
-
使用控制面板打开 IIS6 管理器 --> 管理工具。
打开 SMTP 虚拟服务器属性。
在常规选项卡上,设置 IP 地址
Web 服务器而不是“所有
未分配”。
在访问选项卡中,单击中继
按钮,这将打开继电器
限制对话框。
在中继计算机列表中,添加
环回 IP 地址,即 127.0.0.1
和 Web 服务器的 IP 地址,以便他们可以通过 SMTP 服务器传递/中继电子邮件。
【讨论】:
之所以需要在 IIS 6 中进行管理是因为 IIS 7.X 没有自己的 SMTP 服务器组件,所以它使用 IIS 6。 在我的 web.config 中,我指的是我的 smtp 服务器,名称为“localhost”。如果我按照第 3 步操作,此解决方案将失败;如果我省略了第 3 步,它就起作用了。谢谢:) 这也适用于 IIS8 和 server 2012 我们正在使用中继以通过 Office 365 中的帐户发送电子邮件。即使我们不使用 Web 服务器的 smtp 服务器,我是否仍需要在 IIS 6 中安装 smtp 服务器.这是在运行 IIS 10 的 Windows Server 2016 上。有人对此问题有任何建议或解决方案吗?提前谢谢! 非常感谢!解决了我的问题。【参考方案6】:感谢 Vinod 的出色回答。
按照上述步骤操作时,我遇到了与 Mick Byrne 相同的错误。将其转回 All Unassigned 对其进行了排序,但我还必须调整其他一些内容:
将运行我的站点的用户添加到 SMTP 虚拟服务器中“安全”选项卡上的用户。 将我的 web.config 中的 mailSettings > network > host 属性中的值更改为特定的服务器 IP(例如 192.168.100.120),而不是 localhost(在 hosts 文件中指向 127.0.0.1)。希望这可以为某人节省几分钟的时间。
【讨论】:
【参考方案7】:我遇到了同样的问题,并按照 Vinod 回复中的(非常清楚的说明)步骤进行操作,但这又产生了一个不同的错误:
无法从传输连接读取数据:net_io_connectionclosed
我做了更多的挖掘和探索,(虽然我不确定为什么会这样)我通过以下方式解决了它: - 回到 IIS6.0 管理控制台 - 打开 SMTP 虚拟服务器属性 - 在“常规”选项卡上,将“IP 地址:”设置改回“(全部未分配)”
不知道为什么会这样,但希望能帮助将来遇到同样问题的人。
【讨论】:
【参考方案8】:答案就在这里... IIS Settings
IIS-->默认 SMTP 虚拟服务器-->属性-->访问-->中继限制 只需添加或排除您关心的 IP,即可解决问题。
【讨论】:
“默认 SMTP 虚拟服务器”在哪里?我正在使用 IIS7。在 IIS6 中有“SMTP 虚拟服务器”,但在 IIS& 中没有?以上是关于信箱不可用。服务器响应是:5.7.1 无法为 abc@xyz.com 中继 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
C# SMTP 无法在 Outlook.com 端口 587 上进行身份验证。“服务器响应为:5.7.1 客户端未通过身份验证”