【问题标题】:Mailbox unavailable. The server response was: 5.7.1 Unable to relay for abc@xyz.com [closed]信箱不可用。服务器响应是:5.7.1 无法为 abc@xyz.com 中继 [关闭]
【发布时间】:2011-03-11 02:13:05
【问题描述】:

当我尝试使用 ASP.NET 发送邮件时,我收到“邮箱不可用。服务器响应为:5.7.1 无法为 abc@xyz.com 中继”。该站点部署在IIS7、Windows 2008服务器上。

网站在 IIS6 和 Windows 2003 Server 上运行良好。我将它部署在 IIS7 上,2008 年它开始给我这个错误。

以前有人经历过吗?

【问题讨论】:

标签: asp.net email iis-7 iis-6


【解决方案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 服务器以使其正常工作:

          1. 使用控制面板打开 IIS6 管理器 --> 管理工具。
          2. 打开 SMTP 虚拟服务器属性。
          3. 在常规选项卡上,设置 IP 地址 Web 服务器而不是“所有 未分配”。
          4. 在访问选项卡中,单击中继 按钮,这将打开继电器 限制对话框。
          5. 在中继计算机列表中,添加 环回 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& 中没有?
              猜你喜欢
              • 2012-07-15
              • 2017-11-24
              • 2015-03-06
              • 2012-04-05
              • 2013-03-21
              • 1970-01-01
              • 2017-10-14
              • 2014-04-15
              相关资源
              最近更新 更多