如何解决“504 need to authenticate first”(504 需要首先进行身份验证)SMTP 协议错误

文章翻译 文章翻译
文章编号: 843106 - 查看本文应用于的产品
展开全部 | 关闭全部

症状

应用程序事件日志中可能记录下列两个事件之一或同时记录这两个事件:

类型: 错误
来源: MSExchangeTransport
类别: SMTP 协议
事件 ID: 7004

日期: 1/13/2004
时间: 5:23:43 PM
用户: N/A
计算机: COMPUTERNAME
描述:This is an SMTP protocol error log for virtual server ID 1, connection #29. The remote host "E2k3server1.contoso.com", responded to the SMTP command "xexch50" with "504 Need to authenticate first ". The full command sent was "XEXCH50 2336 3 ". This will probably cause the connection to fail.(此 SMTP 协议错误日志对应于虚拟服务器 ID 1,连接 #29。远程主机“E2k3server1.contoso.com”对 SMTP 命令“xexch50”响应“504 需要首先进行身份验证”。发送的完整命令是“XEXCH50 2336 3”。这可能导致连接失败。)

类型:错误
来源:MSExchangeTransport
类别:SMTP 协议
事件 ID:7010
日期: 1/13/2004
时间:5:43:49 PM
用户:N/A 计算机:COMPUTERNAME
描述:This is an SMTP protocol log for virtual server ID 1, connection #30. The client at "6.5.2.4" sent a "xexch50" command, and the SMTP server responded with "504 Need to authenticate first ". The full command sent was "xexch50 1092 2".This will probably cause the connection to fail.(此 SMTP 协议错误日志对应于虚拟服务器 ID 1,连接 #30。位于“6.5.2.4”的客户端发送了“xexch50”命令,SMTP 服务器响应“504 需要首先进行身份验证”。发送的完整命令是“xexch50 1092 2”。这可能导致连接失败。)这些事件表示 XEXCH50 协议已结束,但是在事件中列出的服务器之间交换 blob 失败。

注意:仅当您将 MSExchangeTransport 事件源的诊断记录上调到中或更高时,才会看到事件 ID 7004 和 7010。

解决方案

要解决此问题,请按照下列步骤操作:
  1. 确认组织中 Exchange Server 计算机上的 SMTP 虚拟服务器上已启用集成 Windows 身份验证。如果尚未启用,请按照下列步骤操作:
    1. 在 Exchange 系统管理器中,依次展开“管理组”、“服务器”、“Exchange Server Name”、“协议”,然后展开“SMTP”。
    2. 右键单击 SMTP 虚拟服务器。(默认情况下,称为“默认 SMTP 虚拟服务器”。)
    3. 单击“属性”,单击“访问”选项卡,然后单击“身份验证”。确保选中“集成 Windows 身份验证”复选框。
  2. 如果启用了集成 Windows 身份验证,但事件依然存在,则事件 7004 或事件 7010 中的发送服务器在接收服务器上可能缺少或被拒绝 SendAs 权限。如果发送服务器和接收服务器都发生这些事件,则它们可能在对方都缺少 SendAs 权限。SendAs 权限无法明确进行设置。SendAs 权限通常是通过 Exchange Domain Servers (EDS) 组中的成员身份继承的。如果 EDS 不具有此 DENY 访问控制项 (ACE),则受影响的服务器可能嵌套在具有 DENY ACE 的另一个组中,或者 EDS 可能嵌套在具有 DENY ACE 的一些其他组中。为了确保成功,XEXCH50 命令必须具有 Exchange 组织中服务器的 SendAs 权限。
  3. 检查您是否正在 Exchange 组织中的各服务器之间使用传输层安全性 (TLS) 和安全通道。在这种情况下,STARTTLS 传输事件在 AUTH 命令之前结束。由于缺少 AUTH 命令,XEXCH50 命令在会话中稍后会失败。
  4. 如果 Exchange 协议安全 (EXPS) 身份验证在服务器之间工作不正常,XEXCH50 命令将无法工作。应用程序日志中的事件 1704 和 1706 表示 EXPS 身份验证失败。

    类型:警告
    来源:MSExchangeTransport 事件
    类别: SMTP 协议
    事件 ID:1706
    描述:
    EXPS 暂时无法为以下对象提供协议安全性:
    "<ServerName>.<Domain>.com”。“CSessionContext::OnEXPSInNegotiate”调用
    “HrServerNegotiateAuth”时因发生以下错误代码而失败:0x8009030c
    ( i:\transmt\src\smtpsink\exps\expslib\context.cpp@1462 )。
    数据:0000:
    0c 03 09 80 ...?

    注意:错误代码 0x8009030c 转换为 SEC_E_LOGON_DENIEDHresult。

    这些问题可能难以排除,因为传递此 AUTH 命令需要 EXPS 的 Microsoft Windows 凭据。您可以使用各种工具来排除同时出现事件 ID 7006 和 7004 的故障,包括 NLTEST 工具和 NETDOM 工具。排除故障的步骤可能包括重置计算机帐户密码。

    如果应用程序日志中同时出现事件 ID 7006 和 7004(如前所述),而您无法通过使用 EXPS 身份验证找到问题的根源,请与 Microsoft 产品支持服务联系。如果在应用程序日志中没有同时出现事件 ID 7006 和 7004,请转至步骤 5。如果需要有关 EXPS 的更多信息,请参阅“更多信息”一节。
  5. 确认 Exchange 组织中各服务器之间是否有防火墙或防病毒墙。如果组织中各服务器之间有防火墙,可以测试问题是否是由防火墙导致的。为此,请临时禁用防火墙。

更多信息

有关如何打开传输问题的诊断记录的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
821910 如何排除 Exchange Server 2003 传输问题
257265 针对 Exchange 2000 Server 和 Exchange Server 2003 中传输问题的常规故障排除

可能出现带有错误 504 的事件 ID 7004 的其他情况

如果事件 ID 7004 中指出的服务器是 Exchange 2000 Server 计算机,或者是其他 Exchange 组织中的 Exchange Server 2003 计算机(如果没有为各 Exchange 组织之间的跨林信任配置连接器),则会出现带有错误 504 的事件 ID 7004。 有关跨林实施的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
828770 Microsoft Exchange 2003 中的“解析匿名发件人”功能
注意:请参阅文章 828770 中的“跨林身份验证方案”一节。

如果服务器是外部 Internet 服务器(Exchange 2000 Server 或 Exchange Server 2003),也会出现带有错误 504 的事件 ID 7004。

如果 Exchange 5.5 服务器具有版本 5.5.2657.72 的 Msexcimc.exe 或者更高版本的 Internet Mail Service (IMS) 连接器,并且 Exchange 5.5 服务器所在的电子邮件域位于负责发送的 Exchange 2000 Server 计算机或 Exchange Server 2003 计算机的外部,则负责接收的 Exchange 5.5 IMS 连接器不会理解来自负责发送的 Exchange Server 计算机的 XEXCH50 命令。如果通过 Internet 从 Exchange 2000 Server 计算机或 Exchange Server 2003 计算机向位于外部电子邮件域的 Exchange 5.5 Server 计算机发送邮件,通常在负责发送的 Exchange Server 计算机上的应用程序日志中会出现带有“505 要求身份验证”错误的事件 7004。此问题的一个解决方法是在 Exchange 2000 Server 计算机或 Exchange Server 2003 计算机所在的 Exchange 组织的外部取消发送 XEXCH50 命令。

要避免 Exchange 2000 Server 计算机或 Exchange Server 2003 计算机上发生此行为,可以将 SuppressExternal 注册表项设置为 1。此设置会禁止 Exchange Server 在 Exchange 组织的外部发送 XEXCH50 命令。 有关如何创建 SuppressExternal 注册表项并将其设置为 1 的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
818222 向远程域发送电子邮件时,邮件将保留在出站队列中,直至生成未送达报告为止

伴随事件 ID 7004 和 7010 可能出现的其他症状

如果 XEXCH50 命令无法正常工作(如事件 7004 和 7010 所示),您可能看到下列症状:
  • 到 Exchange 2000 Server 计算机和 Exchange Server 2003 计算机的公用文件夹复制会受影响。
  • 向公用文件夹发送邮件会受影响。
  • 典型的消息日记功能可能无法工作,或者可能出现重复的日志消息。 有关解决消息日志问题的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    843105 解决 Exchange Server 2003 和 Exchange 2000 Server 中的消息日志问题
  • 如果在 Exchange 组织中对报告启用了信封日志功能,该功能可能无法正常工作。
  • 对通讯组的传递报告设置可能无法正常工作。
  • 通讯组扩展可能无法正常工作。
  • 通讯组许可和限制可能无法按预期方式工作。
  • 向隐藏通讯组发送邮件可能无法按预期工作。
  • 向备用收件人发送的邮件可能导致重复。
  • 智能邮件筛选 (IMF) 可能无法按预期方式工作。

有关 XEXCH50 的更多信息

XEXCH50 是一个 Exchange ESMTP 扩展,用于中继特定 属性,例如信封属性、邮件属性和收件人属性。XEXCH50 命令是 短命令。已收到成功的类型响应的 XEXCH50 命令后跟一个大小可变的二进制大对象 (BLOB)。(该大小对应于 XEXCH50 命令的第一个参数。)

有关 TLS 和 STARTTLS 的更多信息

STARTTLS 命令在 RFC 2487 中进行描述,该 RFC 名为 SMTP Service Extension for Secure SMTP over TLS(通过 TLS 进行的安全 SMTP 的 SMTP 服务扩展)。要查看此 RFC,请访问以下 IETF 网站:
ftp://ftp.ietf.org/rfc/rfc2487.txt
注意:为了帮助保护通信,可以将 Microsoft SMTP 服务配置为使用传输层安全性 (TLS) 对 SMTP 传输进行加密。此功能是通过 STARTTLS SMTP 协议命令提供的。

有关 EXPS 的更多信息

X-EXPS 是 Exchange Server 专用的一个动词,尽管它与 AUTH 类似。数据命令和响应的语法取决于您选择的 AUTH 包,例如 LOGIN、NTLM、GSSAPI 等。有关更多信息,请参阅 AUTH RFC。

尽管 EXPS 代表 Exchange 协议安全,但它引用的唯一协议是 SMTP。Exchange 2000 Server 和 Exchange Server 2003 中使用的某些动词专属于这些产品,并且与 ESMTP 动词一起使用。它们也称为 ESMTP X 动词。 有关 ESMTP X 动词的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
812455 两个 Exchange 服务器之间使用的动词定义
如果所发送和公布的 ehlo 名称在 Exchange 组织中找不到,则接收服务器的 GSSAPI 身份验证 (EXPS) 功能将保留。将会忽略 ehlo 名称,就好像它从未被公布过一样。实质上,发送服务器将不会尝试进行身份验证。

网络监视器跟踪数据表明,发送服务器从未发出 GSSAPI 身份验证并在 XEXCH50 动词后记录“504 need to authenticate”(504 需要进行身份验证)SMTP 协议错误。要解决此问题,请确保 SMTP 虚拟服务器属性中的全限定域名 (FQDN) 正确无误。

要验证 SMTP 虚拟服务器的传送设置,请按照下列步骤操作:
  1. 单击“开始”,依次指向“所有程序”、“Microsoft Exchange”,然后单击“系统管理器”。
  2. 如果“显示管理组”复选框处于选定状态,请展开“管理组”,然后展开“First Administrative Group”。

    注意First Administrative Group 是管理组的名称。

    要显示管理组,请右键单击“Your_Organization”,单击“属性”,单击“显示管理组”复选框,将其选中,单击“确定”两次,然后重新启动“Exchange 系统管理器”。
  3. 展开“服务器”,展开“Your_Exchange_Server”,展开“协议”,然后单击“SMTP”。
  4. 在右边的窗格中,右键单击“默认 SMTP 虚拟服务器”,然后单击“属性”。
  5. 单击“传送”选项卡,然后单击“高级”。
  6. 验证“完全限定的域名”框中列出的值是否为服务器的实际 FQDN。
注意:FQDN 值可以是网络基本输入/输出系统 (NetBIOS) 名称或 FQDN。

如果已更改了“完全限定的域名”框中列出的名称以试图欺骗 220 响应名称或欺骗 RFC 2821 已收到标头中的名称,则可能会出现“症状”一节中列出的症状。

此外,请验证服务器之间没有丢弃的数据包。确保防火墙不会阻止诸如 XEXCH50 等扩展的 SMTP 动词。

属性

文章编号: 843106 - 最后修改: 2007年11月26日 - 修订: 4.2
这篇文章中的信息适用于:
  • Microsoft Exchange Server 2003 Enterprise Edition
  • Microsoft Exchange Server 2003 Standard Edition
  • Microsoft Exchange 2000 Enterprise Server
  • Microsoft Exchange 2000 Server 标准版
关键字:?
kbprb KB843106
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com