信箱不可用。服务器响应是: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 客户端未通过身份验证”

服务器响应为:4.3.2 服务不可用,关闭传输通道

无法在 aws-sdk(node.js)中收到 503 错误(服务不可用)的响应

无法连接:SQLSERVER不可用或不存在。

Azure节点部署 - 服务不可用 - npm WARN生命周期