当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 目标邮箱没有匹配的 SMTP 代理

作者:精品下载站 日期:2024-12-14 18:21:12 浏览:14 分类:玩电脑

目标邮箱没有匹配的 SMTP 代理


您正在将邮箱从本地 Exchange 迁移到 Microsoft 365 中的 Exchange Online。这次出现错误,表明邮箱状态失败。目标邮箱没有与“.mail.onmicrosoft.com”匹配的 SMTP 代理。为什么会发生这种情况,解决办法是什么?在本文中,您将了解如何解决将邮箱迁移到 Exchange Online 时出现失败状态的问题。

目标邮箱没有SMTP代理匹配的解决方法

如果满足以下条件之一,则可能会出现此问题:

  • 源邮箱未标记为具有 .mail.onmicrosoft.com SMTP 地址。

  • 代理地址 .mail.onmicrosoft.com 未同步到相应云邮件用户对象上的 Office 365。

将代理地址 .mail.onmicrosoft.com 添加到邮箱非常重要。如果不这样做,邮箱迁移将会失败。

注意:解决此问题的最快方法是使用 PowerShell 将 .mail.onmicrosoft.com 批量添加到所有邮箱。

这是 Exchange 管理中心中的错误的样子。

[玩转系统] 目标邮箱没有匹配的 SMTP 代理

获取没有 .mail.onmicrosoft.com SMTP 地址的邮箱

以管理员身份运行 Exchange 命令行管理程序并连接到本地 Exchange Server。列出缺少 .mail.onmicrosoft.com SMTP 地址的所有邮箱。

在我的示例中,.mail.onmicrosoft.comexoip.mail.onmicrosoft.com 地址。将 exoip 更改为你的 Microsoft 365 租户名称。

[PS] C:\>Get-Mailbox -ResultSize Unlimited -Filter {EmailAddresses -notlike "*@exoip.mail.onmicrosoft.com"} | Select-Object UserPrincipalName,Alias

UserPrincipalName           Alias
-----------------           -----
[email protected]     Amanda.Morgan
[email protected]        Anna.Welch
[email protected]     Benetiz.Anees
[email protected]    Boris.Campbell
[email protected]        Carl.Kelly
[email protected] Christopher.Payne

获取带有 .mail.onmicrosoft.com SMTP 地址的邮箱

您想要一个包含所有具有 .mail.onmicrosoft SMTP 地址的邮箱的列表吗?将比较运算符 -notlike 更改为 -like

[PS] C:\>Get-Mailbox -ResultSize Unlimited -Filter {EmailAddresses -like "*@exoip.mail.onmicrosoft.com"} | Select-Object UserPrincipalName,Alias

UserPrincipalName        Alias
-----------------        -----
[email protected]     Kyle.Peake
[email protected] Kylie.Davidson
[email protected]   Larson.Tevin
[email protected] Madeleine.Ross

我们知道为什么显示错误目标邮箱没有 SMTP 代理匹配。我们列出了哪些邮箱缺少 SMTP 地址。在下一步中,我们会将缺少的 SMTP 地址批量添加到邮箱中。

使用 PowerShell 批量添加 .mail.onmicrosoft.com SMTP 地址

我们有两个选项可以将 .mail.onmicrosoft.com SMTP 地址设置为所有邮箱。

选项 1:使用两个 PowerShell cmdlet 批量添加 .mail.onmicrosoft.com SMTP

运行以下两个 cmdlet 将 [email protected] 设置为辅助 SMTP 地址。

[PS] C:\>$NoSMTP = Get-Mailbox -ResultSize Unlimited -Filter {EmailAddresses -notlike "*@exoip.mail.onmicrosoft.com"}

[PS] C:\>$NoSMTP | ForEach {Set-Mailbox -Identity $_.UserPrincipalName -EmailAddresses @{add=$_.Alias+"@exoip.mail.onmicrosoft.com"}}

选项 2:使用 PowerShell 脚本批量添加 .mail.onmicrosoft.com SMTP

(C:)驱动器上创建两个文件夹:

  • 脚本

  • 温度

下载 PowerShell 脚本 Add-onmicrosoft-SMTP.ps1 并将其放置在 C:\scripts 文件夹中。

另一种选择是将以下代码复制并粘贴到记事本中。将文件另存为 C:\scripts 文件夹中的 Add-onmicrosoft-SMTP.ps1

运行脚本后,输出将记录到临时文件夹,文件名为 Add-onmicrosoft-SMTP.log

# Output will be added to C:\temp folder. Open the Add-onmicrosoft-SMTP.log with a text editor. For example, Notepad.
Start-Transcript -Path C:\temp\Add-onmicrosoft-SMTP.log -Append

# Get all mailboxes
$Mailboxes = Get-Mailbox -ResultSize Unlimited

# Loop through each mailbox
foreach ($Mailbox in $Mailboxes) {

    # Search for @mail.onmicrosoft.com SMTP in every mailbox
    $OnMicrosoftAddress = $Mailbox.EmailAddresses | Where-Object { $_ -like "*mail.onmicrosoft.com" }
      
    # Do nothing when there is already an @mail.onmicrosoft.com SMTP configured
    If (($OnMicrosoftAddress | Measure-Object).Count -eq 0) {

        # Change exoip with the domain name that you want to add as SMTP
        $OnMSAddress = "$($Mailbox.Alias)@exoip.mail.onmicrosoft.com"

        # Set onmicrosoft SMTP address
        Set-Mailbox $Mailbox.DistinguishedName -EmailAddresses @{add = $OnMSAddress }

        # Write output
        Write-Host "Adding $($OnMSAddress) to $($Mailbox.Name) Mailbox" -ForegroundColor Green
    }
}

Stop-Transcript
  • 第 17 行:@exoip.mail.onmicrosoft.com 值更改为要添加到邮箱的域。

让我们看看实际运行的 PowerShell 脚本。以管理员身份运行 Exchange 命令行管理程序。将目录更改为脚本文件夹并运行脚本。

PowerShell 脚本将遍历 Exchange 本地邮箱,并将 .mail.onmicrosoft.com 添加到每个邮箱作为辅助 SMTP 地址。

[PS] C:\>cd \scripts
[PS] C:\scripts>.\Add-onmicrosoft-SMTP.ps1
Transcript started, output file is C:\temp\Add-onmicrosoft-SMTP.log
Adding [email protected] to Amanda Morgan Mailbox
Adding [email protected] to Anna Welch Mailbox
Adding [email protected] to Benetiz Anees Mailbox
Adding [email protected] to Boris Campbell Mailbox
Adding [email protected] to Carl.Kelly Mailbox
Adding [email protected] to Christopher Payne Mailbox
Transcript stopped, output file is C:\temp\Add-onmicrosoft-SMTP.log

最后一步是验证结果并确保在将邮箱迁移到 Exchange Online 时不会看到目标邮箱没有 SMTP 代理匹配的错误。

验证结果

如果您使用选项 2 通过 PowerShell 脚本设置 .mail.onmicrosoft.com SMTP,则可以检查日志文件。转到 C:\temp 文件夹并使用记事本打开文件 Add-onmicrosoft-SMTP.log

[玩转系统] 目标邮箱没有匹配的 SMTP 代理

运行 cmdlet 以检查是否有不带 .mail.onmicrosoft.com SMTP 地址的可用邮箱。

运行 cmdlet 后输出为空,因为所有邮箱均配置为 .mail.onmicrosoft.com

[PS] C:\>Get-Mailbox -ResultSize Unlimited -Filter {EmailAddresses -notlike "*@exoip.mail.onmicrosoft.com"}

它是否帮助您解决目标邮箱没有 SMTP 代理匹配的错误?

了解更多:使用 PowerShell 完成迁移批处理 »

结论

您了解了为什么显示错误目标邮箱没有 SMTP 代理匹配。使用 PowerShell cmdlet 将 .mail.onmicrosoft.com SMTP 添加到邮箱。设置 SMTP 地址后,运行 Azure AD Connect 将本地 AD 对象与云同步。将邮箱移动到 Exchange Online 并查看移动请求。这次不再出现错误,迁移成功。

您喜欢这篇文章吗?您可能还喜欢在 Exchange Online 中获取移动请求批处理。不要忘记关注我们并分享这篇文章。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯