在 Exchange Online 中添加电子邮件地址时,代理地址冲突

现象

尝试将代理地址分配给 Exchange Online 中的新邮件或现有邮件收件人时,会收到类似于以下示例之一的错误消息。

错误 1

“domain.prod.outlook.com/Microsoft> Exchange 托管组织/contoso.onmicrosoft.com/<林>”已使用代理地址“<SMTP:<冲突 SMTP 地址>”。 选择另一个代理地址。

错误 2

进行了Microsoft Entra ID 调用,以使对象在 Microsoft Entra ID 和 Exchange Online 之间保持同步。 但是,它失败了。 详细错误消息:已存在属性 proxyAddresses 具有相同值的另一个对象。 ConflictingObject:PublicFolder_<GUID>。

邮件收件人的示例包括邮件用户、用户邮箱、共享邮箱、通讯组、Microsoft 365 组和启用邮件的公用文件夹(MEPF)。

原因

原因 1

如果 Exchange Online 中启用了邮件的对象使用要分配的代理地址,则会出现第一条错误消息。

原因 2

如果仅存在于 Microsoft Entra ID 中的 MEPF 对象使用要分配的代理地址,则会出现第二条错误消息。

解决方法

第一个错误的解决方法是在 Exchange Online 中检查和删除任何冲突的代理地址。

第二个错误的解决方法是在 Exchange Online 中检查和删除任何冲突的代理地址,并在 Microsoft Entra ID 中检查和删除任何冲突的代理地址。

根据收到的错误消息,使用适当的解决方法。 然后,再次尝试分配代理地址。

在 Exchange Online 中检查并删除任何冲突的代理地址

按照以下步骤在 Exchange Online 中搜索使用冲突代理地址的现有启用邮件的对象。

  1. 连接到 Exchange Online PowerShell

  2. 若要列出使用冲突 SMTP 地址的所有邮件收件人,请运行以下命令:

    Get-EXORecipient -ResultSize unlimited | Where-Object {$_.EmailAddresses -match "<conflicting SMTP address>"} | fl Name, RecipientType, EmailAddresses
    

    如果不知道确切的 SMTP 地址,请改为运行以下命令:

    Get-EXORecipient -ResultSize unlimited | Where-Object {$_.EmailAddresses -match "<partial conflicting SMTP address>"} | fl Name, RecipientType, EmailAddresses
    
  3. 代理地址一次只能分配给一个对象。 确定哪个对象存在冲突后,请删除或更改与该对象关联的代理地址。

    例如,如果对象是启用邮件的公用文件夹,请运行以下命令以禁用公用文件夹以释放使用的电子邮件地址:

    Get-MailPublicFolder -ResultSize Unlimited | Where-Object {$_.EmailAddresses -match "<conflicting SMTP address>"} | Disable-MailPublicFolder
    

检查并删除Microsoft Entra ID 中的任何冲突代理地址

重要

此解决方案需要安装 Microsoft Entra Connect 的本地服务器。 如果本地基础结构已停用,请联系Microsoft 支持部门

按照以下步骤检查和使用冲突代理地址的任何 MEDF,并从 Microsoft Entra 中删除。 这些步骤需要运行 Microsoft Entra Connect 2.0 或更高版本的本地服务器。

  1. 通过在本地 Exchange 命令行管理程序(EMS)中运行以下命令,搜索所有本地 MEDF 中的冲突代理地址:

    Get-MailPublicFolder -ResultSize Unlimited | Where-Object {$_.EmailAddresses -match "<conflicting SMTP address>"}
    
  2. 对于步骤 1 中标识的每个本地 MEPF,通过在本地 EMS 中运行以下命令来删除冲突的 SMTP 地址:

    Set-MailPublicFolder -Identity <public folder name or GUID> -EmailAddresses @{remove="<conflicting SMTP address>"} -EmailAddressPolicyEnabled:$false
    

    此步骤删除本地端的任何代理地址冲突,以确保它们不会同步到 Microsoft Entra ID 或 Exchange Online。

  3. 如果在步骤 2 中删除了任何本地 MEPF 中的冲突 SMTP 地址,请等到下一个计划的同步在 Microsoft Entra Connect 服务器上运行,或者通过运行以下 PowerShell 命令手动启动 同步周期

    Start-ADSyncSyncCycle -PolicyType Delta
    

    同步应从 Microsoft Entra ID 中删除冲突的 SMTP 地址。

  4. 如果在任何本地 MEPF 中未找到冲突的 SMTP 地址,或者同步未从 Microsoft Entra ID 中删除冲突的 SMTP 地址,请搜索具有冲突 SMTP 地址的 MEDF Microsoft Entra ID。 若要在 Microsoft Entra ID 中搜索 MEDF,请在 Microsoft Entra Connect 服务器上使用 Get-ADSyncToolsAadObject PowerShell cmdlet。 搜索不区分大小写。 指定 SMTP 地址时,请包含“smtp:”前缀。

    $mailEnabledPublicFolders = Get-ADSyncToolsAadObject -SyncObjectType "PublicFolder" -Credential (Get-Credential)
    
    $conflictingSmtpAddress = "smtp:<conflicting SMTP address>"
    
    $mailEnabledPublicFolders | Where-Object {$_.ProxyAddresses -icontains $conflictingSmtpAddress} | Select SourceAnchor
    

    搜索结果为满足搜索条件的每个 MEPF 提供 SourceAnchor

  5. 对于步骤 4 中标识的每个 MEPF,请使用 Remove-ADSyncToolsAadObject cmdlet 从 Microsoft Entra ID 中删除 MEPF。 以 SourceAnchor Base64 格式提供 MEPF 的值。

    $conflictingSourceAnchor= "SourceAnchor value"
    
    Remove-ADSyncToolsAadObject -SourceAnchor $conflictingSourceAnchor -SyncObjectType "PublicFolder" -Credentials (Get-Credential)
    

    有关 cmdlet 用法示例,请参阅 Remove-ADSyncToolsAadObject 示例 2

  6. 从步骤 4 重新运行Microsoft Entra ID 搜索。 这一次,搜索结果不应返回任何 MEDF。