You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Exchange 2010至2013邮件启用公用文件夹SMTP地址迁移问题

Exchange 2010到2013邮件启用公用文件夹SMTP地址迁移解答

核心结论

  • 官方提供的标准公用文件夹批量迁移流程及配套PowerShell脚本,默认会自动同步所有源端邮件启用公用文件夹的proxyAddresses属性,包含主SMTP地址、所有辅助SMTP代理地址、X500遗留地址等邮件相关属性,正常无冲突的迁移场景下,迁移完成后公用文件夹的邮件收发能力和迁移前完全一致,不需要手动单独配置SMTP地址。

仅当迁移过程中出现地址冲突(如目标Exchange 2013环境内已存在占用相同SMTP地址的其他收件人、公用文件夹),或你自定义迁移参数时显式排除了邮件属性同步,才会出现SMTP地址丢失、未同步的问题,这类场景需要手动补全配置。

手动配置相关PowerShell命令

单公用文件夹基础操作命令

  1. 为未启用邮件能力的公用文件夹开启邮件功能:
# 将<公用文件夹路径>替换为实际路径,例:\部门公共区\运营公告
Enable-MailPublicFolder -Identity "<公用文件夹路径>"
  1. 配置公用文件夹主SMTP地址:
# 配置后主地址会自动更新,原主地址默认保留为辅助代理地址
# 加上-EmailAddressPolicyEnabled $false参数避免地址被电子邮件地址策略覆盖
Set-MailPublicFolder -Identity "<公用文件夹路径>" -PrimarySmtpAddress "主地址@你的域名.com" -EmailAddressPolicyEnabled $false
  1. 追加辅助SMTP代理地址:
Set-MailPublicFolder -Identity "<公用文件夹路径>" -EmailAddresses @{add="辅助地址1@你的域名.com","辅助地址2@你的域名.com"}

批量同步SMTP地址参考脚本

如果迁移后出现批量地址丢失的情况,可以先从源端导出地址清单,再在目标端批量导入配置:

  1. 在Exchange 2010源服务器运行,导出所有邮件启用公用文件夹的地址清单:
# 导出结果会保存到C盘根目录的PF_Email_Addresses.csv文件
Get-MailPublicFolder -ResultSize Unlimited | Select-Object `
    Identity,
    PrimarySmtpAddress,
    @{
        Name="ProxyAddresses";
        Expression={$_.EmailAddresses | Where-Object {$_ -clike "SMTP:*" -or $_ -clike "smtp:*"} | ForEach-Object {$_ -replace "SMTP:","" -replace "smtp:",""}}
    } | Export-Csv -Path "C:\PF_Email_Addresses.csv" -NoTypeInformation -Encoding UTF8
  1. 将导出的CSV文件拷贝到Exchange 2013目标服务器后运行,批量补全地址配置:
$pfAddressList = Import-Csv -Path "C:\PF_Email_Addresses.csv" -Encoding UTF8

foreach ($pf in $pfAddressList) {
    # 校验目标端公用文件夹是否存在
    $targetPf = Get-PublicFolder -Identity $pf.Identity -ErrorAction SilentlyContinue
    if (-not $targetPf) {
        Write-Warning "公用文件夹 $($pf.Identity) 不存在于目标环境,跳过配置"
        continue
    }

    # 未启用邮件的先开启邮件功能
    $mailEnabledPf = Get-MailPublicFolder -Identity $pf.Identity -ErrorAction SilentlyContinue
    if (-not $mailEnabledPf) {
        Enable-MailPublicFolder -Identity $pf.Identity
        Start-Sleep -Seconds 3
    }

    # 配置主SMTP地址,关闭地址策略覆盖避免自定义地址被重置
    Set-MailPublicFolder -Identity $pf.Identity -PrimarySmtpAddress $pf.PrimarySmtpAddress -EmailAddressPolicyEnabled $false

    # 补全缺失的辅助SMTP地址
    $existingAddresses = (Get-MailPublicFolder -Identity $pf.Identity).EmailAddresses | 
        Where-Object {$_ -clike "SMTP:*" -or $_ -clike "smtp:*"} | 
        ForEach-Object {$_ -replace "SMTP:","" -replace "smtp:",""}
    $needAddAddresses = @()
    $sourceProxyList = $pf.ProxyAddresses -split "\s+"
    foreach ($addr in $sourceProxyList) {
        if ($addr -ne $pf.PrimarySmtpAddress -and $addr -notin $existingAddresses) {
            $needAddAddresses += $addr
        }
    }
    if ($needAddAddresses.Count -gt 0) {
        Set-MailPublicFolder -Identity $pf.Identity -EmailAddresses @{add=$needAddAddresses}
    }

    Write-Host "已完成公用文件夹 $($pf.Identity) 的邮件地址配置" -ForegroundColor Green
}

注意事项

  • 正式运行批量脚本前,建议先选取3-5个测试公用文件夹做验证,确认地址配置符合预期后再全量运行
  • 全量配置完成后,抽查10%左右的公用文件夹地址配置,同时发送测试邮件验证内外部邮件流是否正常

内容的提问来源于stack exchange,提问作者Fabian

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 08:42:14