在 Exchange Server 中通过 HTTP 配置 MAPI

在 Exchange 2016 和 Exchange 2019 中,可以在组织级别或单个邮箱级别通过 HTTP 配置 MAPI。 邮箱级设置始终优先于组织范围的设置。

下表描述了在组织级别默认启用或禁用 MAPI over HTTP 的方案:

应用场景 Exchange 2019 Exchange 2016
从 Exchange 2016 环境升级 默认情况下启用 MAPI over HTTP 不适用
从包含任何 Exchange 2013 服务器的环境升级 默认情况下禁用 MAPI over HTTP 默认情况下禁用 MAPI over HTTP
从 Exchange 2010 环境升级 不适用 默认情况下启用 MAPI over HTTP

注意

在组织级别启用 MAPI over HTTP 时,Get-OrganizationConfig cmdlet 返回的 MapiHttpEnabled 属性值为 True

本主题介绍如何为包含 Exchange 2013 服务器的 Exchange 组织或以前禁用 MAPI over HTTP 的任何拓扑配置和启用 MAPI over HTTP。 还可以使用本文中的过程在组织级别通过 HTTP 禁用 MAPI。

本主题还介绍如何为单个邮箱启用或禁用 MAPI over HTTP。 在邮箱级别,可以在内部、外部或两者中允许或阻止通过 HTTP 连接的 MAPI。 在所有情况下,禁用 MAPI over HTTP 时,都将与 Outlook Anywhere 建立连接。

配置依赖于 HTTP 的 MAPI

完成以下步骤,为组织配置 MAPI over HTTP。 这些步骤假定你已在 Exchange Server 中配置 MAPI over HTTP 中所述的先决条件。 配置 (步骤 1-3) 后,使用步骤 4 在组织级别和/或邮箱级别启用或禁用特定权限方案。

  1. 虚拟目录配置:默认情况下,Exchange 通过 HTTP 为 MAPI 创建虚拟目录。 使用 Set-MapiVirtualDirectory cmdlet 配置虚拟目录。 需要配置内部 URL 和/或外部 URL。 有关详细信息,请参阅 Set-MapiVirtualDirectory

    例如,若要在本地 Exchange 服务器上配置默认 MAPI 虚拟目录,请将内部 URL 值设置为 https://contoso.com/mapi,并将身份验证方法设置为 Negotiate,请运行以下命令:

    Set-MapiVirtualDirectory -Identity "Contoso\mapi (Default Web Site)" -InternalUrl https://Contoso.com/mapi -IISAuthenticationMethods Negotiate
    
  2. 证书配置:Exchange 环境使用的数字证书必须包含 MAPI 虚拟目录上定义的相同 InternalURLExternalURL 值。 有关 Exchange 证书管理的详细信息,请参阅 Exchange Server 中的数字证书和加密。 请确保 Exchange 证书在 Outlook 客户端工作站上受信任,并且没有证书错误,尤其是在访问 MAPI 虚拟目录上配置的 URL 时。

  3. 更新服务器规则:验证负载均衡器、反向代理和防火墙是否已配置为允许通过 HTTP 虚拟目录访问 MAPI。

  4. 使用以下步骤在整个 Exchange 组织中启用 MAPI over HTTP,或者为一个或多个单独的邮箱启用 MAPI over HTTP。

    注意

    运行以下命令后,启用了 MAPI over HTTP 的 Outlook 客户端将看到一条消息,要求重启 Outlook 以使用 MAPI over HTTP。

    在 Exchange 组织中通过 HTTP 启用 MAPI

    若要在组织级别通过 HTTP 启用或禁用 MAPI,请使用 Set-OrganizationConfig cmdlet 和 MapiHttpEnabled 参数。 有效值包含:

    • $true:除非在特定邮箱) 上禁用了基于 HTTP 的 MAPI,否则组织 (中的所有邮箱都允许使用通过 HTTP 连接的 MAPI。

    • $false:除非在特定邮箱) 上启用了 MAPI over HTTP 连接,否则组织 (中的所有邮箱都不允许使用 MAPI over HTTP 连接。

    以下示例为整个组织启用通过 HTTP 连接的 MAPI:

    Set-OrganizationConfig -MapiHttpEnabled $true
    

    为单个邮箱启用 MAPI over HTTP

    若要在邮箱级别启用或禁用通过 HTTP 的 MAPI,请使用 Set-CasMailbox cmdlet 和 MapiHttpEnabled 参数。 有效值包含:

    • $null:邮箱遵循组织级别的设置。 此值为默认值。

    • $true:通过 HTTP 为邮箱启用 MAPI。 如果在组织级别禁用了 MAPI over HTTP,则会为邮箱启用它。

    • $false:禁用邮箱的 MAPI over HTTP。 如果在组织级别启用了 MAPI over HTTP,则会为邮箱禁用它,因此邮箱将使用 Outlook Anywhere 连接。

    以下示例为单个邮箱启用通过 HTTP 连接的 MAPI:

    Set-CasMailbox <user or mailbox ID> -MapiHttpEnabled $true
    

通过 HTTP 连接测试 MAPI

可以使用 Test-OutlookConnectivity cmdlet 通过 HTTP 连接测试端到端 MAPI。 若要使用 Test-OutlookConnectivity cmdlet,必须启动 Microsoft Exchange Health Manager (MSExchangeHM) 服务。

以下示例测试来自名为 ContosoMail 的 Exchange 服务器的 MAPI over HTTP 连接。

Test-OutlookConnectivity -RunFromServerId ContosoMail -ProbeIdentity OutlookMapiHttpSelfTestProbe

成功的测试将返回类似于以下示例的输出:

MonitorIdentity                                          StartTime              EndTime                Result      Error     Exception
---------------                                          ---------              -------                ------      -----     ---------
OutlookMapiHttp.Protocol\OutlookMapiHttpSelfTestProbe    2/14/2018 7:15:00 AM   2/14/2018 7:15:10 AM   Succeeded

有关详细信息,请参阅 Test-OutlookConnectivity

MAPI over HTTP 活动的日志位于以下位置:

  • %ExchangeInstallPath%Logging\MAPI 通讯簿服务\

  • %ExchangeInstallPath%Logging\MAPI 客户端访问\

  • %ExchangeInstallPath%Logging\HttpProxy\Mapi\

通过 HTTP 配置和内部或外部连接组合 MAPI

除了本主题前面所述的组织和邮箱设置外,还可以使用 Set-CasMailboxcmdlet 上的 MapiBlockOutlookExternalConnectivity 参数来允许或拒绝外部 Outlook Anywhere 或 MAPI 通过 HTTP 连接到特定邮箱。 有效值包含:

  • True:仅允许与邮箱建立内部连接。

  • False:允许与邮箱建立内部和外部连接。 此值为默认值。

下表汇总了组织级别和单个邮箱上不同设置组合的结果。

Set-OrganizationConfig上的 MapiHttpEnabled 值 Set-CasMailbox上的 MapiHttpEnabled 值 Set-CasMailbox 上的 MapiBlockOutlookExternalConnectivity 值 自动发现结果
$true $null $false 基于 HTTP、内部和外部的 MAPI
$true $null $true MAPI over HTTP,仅限内部
$true $true $false 基于 HTTP、内部和外部的 MAPI
$true $true $true MAPI over HTTP,仅限内部
$true $false $false Outlook Anywhere(内部和外部)
$true $false $true Outlook Anywhere,仅限内部
$false $null $false Outlook Anywhere(内部和外部)
$false $null $true Outlook Anywhere,仅限内部
$false $true $false 基于 HTTP、内部和外部的 MAPI
$false $true $true MAPI over HTTP,仅限内部
$false $false $false Outlook Anywhere(内部和外部)
$false $false $true Outlook Anywhere,仅限内部

通过 HTTP 管理 MAPI

可以使用以下 cmdlet 通过 HTTP 管理 MAPI 的配置: