一、迁移前的 3 项核心准备工作(环境与权限核查)
在导入配置前,需确保 Exchange 与 MailPlus Server 的环境兼容、权限充足,且数据备份到位,避免因基础条件缺失导致迁移失败。
1.1 确认版本兼容性(避免适配问题)
导入功能对 Exchange 和 MailPlus Server 的版本有明确要求,需提前核查:
软件名称 | 支持版本 | 注意事项 |
Microsoft Exchange | Exchange 2010(含 SP3)、2013、2016、2019 | Exchange 2007 及以下版本不支持官方导出工具,需手动整理配置 |
Synology MailPlus Server | 运行于 DSM 7.0 及以上版本 | 需更新至最新版本(进入【套件中心】→【已安装】→【MailPlus Server】→【更新】),修复旧版本导入 bug |
导出工具 | Exchange Management Shell(Exchange 自带) | 需在 Exchange 服务器或已安装 Exchange 管理工具的客户端运行 |
1.2 获取必要的管理员权限(确保数据可导出 / 导入)
需同时拥有 Exchange 和 DSM 的管理员权限,具体权限要求如下:
- 登录 Exchange 服务器或管理客户端,使用 “Domain Admin”(域管理员)账户或 “Exchange Organization Administrator”(Exchange 组织管理员)账户;
- 确认账户拥有 “查看邮箱配置”“导出通讯组列表” 权限(可在 Exchange 管理中心【权限】→【管理员角色】中核查,若缺失需添加对应角色)。
- 使用 DSM 的 “admin” 账户或拥有 “MailPlus Server 管理员” 权限的账户登录(进入【控制面板】→【用户与群组】→【用户】→【编辑】→【应用程序权限】,确认 “MailPlus Server” 权限设为 “管理员”);
- 确保账户拥有 “共享文件夹写入权限”(用于存放从 Exchange 导出的 CSV 配置文件)。
1.3 备份关键数据(避免配置丢失)
迁移前需备份两类数据,防止操作失误导致配置损坏:
- Exchange 配置备份:
- 打开 Exchange Management Shell,执行命令备份邮箱配置(以 Exchange 2016 为例):
Export-MailboxStatistics -Identity "所有邮箱" -FilePath "C:Exchange_BackupMailbox_Config_Backup.xml"
- 手动备份通讯组列表:进入 Exchange 管理中心【收件人】→【组】,勾选所有通讯组,点击【导出】保存为 CSV 文件。
- MailPlus Server 备份:
- 登录 DSM,进入【MailPlus Server】→【维护】→【备份与恢复】;
- 点击【立即备份】,选择备份内容为 “系统配置”,设置备份路径(建议选择外接存储或 Synology Drive),点击【确定】完成备份。
二、分步操作:从 Exchange 导出系统配置数据
Exchange 的核心可导入配置包括 “邮箱别名”“通讯组列表”“邮件地址策略”,需通过 Exchange Management Shell 按类型导出为 CSV 文件(CSV 格式便于 MailPlus Server 识别),不同配置的导出命令不同,需分别操作。
2.1 导出 “邮箱别名” 配置(适配所有 Exchange 版本)
- 打开 Exchange Management Shell:
- 在 Exchange 服务器上,点击【开始】→【Microsoft Exchange Server】→【Exchange Management Shell】;
- 若在客户端操作,需先安装 “Exchange 管理工具”(从 Exchange 安装介质中选择 “管理工具” 组件)。
- 执行导出命令:
- 输入以下命令(将路径替换为实际存储路径,如 D:Exchange_Export):
Get-Mailbox -ResultSize Unlimited | Select-Object Name, PrimarySmtpAddress, @{Name="EmailAddresses";Expression={$_.EmailAddresses | Where-Object {$_ -cmatch '^smtp:'} | ForEach-Object {$_ -replace 'smtp:',''}}} | Export-Csv -Path "D:Exchange_ExportMailbox_Aliases.csv" -Encoding UTF8 -NoTypeInformation
- Get-Mailbox -ResultSize Unlimited:获取所有邮箱账户;
- Select-Object:筛选需要的字段(用户名、主邮箱地址、别名);
- Where-Object {$_ -cmatch '^smtp:'}:仅保留 SMTP 类型的别名(排除其他类型地址);
- Export-Csv:导出为 CSV 文件,指定编码为 UTF8(避免中文乱码)。
- 验证导出文件:
- 打开导出的 “Mailbox_Aliases.csv”,检查字段是否完整:
字段名 | 含义 | 示例 |
Name | Exchange 用户名 | John Doe |
PrimarySmtpAddress | 邮箱主地址 | john.doe@domain.com |
EmailAddresses | 邮箱别名(多个别名用分号分隔) | john.doe-alias1@domain.com;john.doe-alias2@domain.com |
- 若发现别名缺失,需重新执行命令,检查是否有邮箱未被获取(可添加-Identity "特定邮箱"单独导出测试)。
2.2 导出 “通讯组列表” 配置(含成员信息)
- 导出通讯组基本信息:
Get-DistributionGroup -ResultSize Unlimited | Select-Object Name, PrimarySmtpAddress, Description | Export-Csv -Path "D:Exchange_ExportDistribution_Groups_Basic.csv" -Encoding UTF8 -NoTypeInformation
- 导出通讯组成员信息:
- 执行命令导出每个组的成员邮箱(需耐心等待,成员多则耗时较长):
$groups = Get-DistributionGroup -ResultSize Unlimited$groupMembers = @()foreach ($group in $groups) {$members = Get-DistributionGroupMember -Identity $group.Identity -ResultSize Unlimited | Select-Object -ExpandProperty PrimarySmtpAddress$groupMembers += [PSCustomObject]@{GroupName = $group.NameGroupPrimaryAddress = $group.PrimarySmtpAddressMemberAddresses = $members -join ";"}}$groupMembers | Export-Csv -Path "D:Exchange_ExportDistribution_Groups_Members.csv" -Encoding UTF8 -NoTypeInformation
- 验证成员完整性:
- 打开 “Distribution_Groups_Members.csv”,选择一个成员较多的组(如 sales 组),检查 “MemberAddresses” 字段是否包含所有成员邮箱;
- 对比 Exchange 管理中心的组成员列表,若缺失成员,需检查命令是否遗漏(如添加-IncludeSoftDeletedObjects包含软删除成员)。
2.3 导出 “邮件地址策略” 配置(仅 Exchange 2013 及以上)
- 执行导出命令:
Get-EmailAddressPolicy -ResultSize Unlimited | Select-Object Name, Priority, EnabledPrimarySMTPAddressTemplate, EnabledEmailAddressTemplates | Export-Csv -Path "D:Exchange_ExportEmail_Address_Policies.csv" -Encoding UTF8 -NoTypeInformation
- 解读策略字段:
- “EnabledEmailAddressTemplates”:附加地址模板(多个模板用分号分隔),后续可在 MailPlus Server 中手动配置类似策略。
三、分步操作:在 MailPlus Server 导入 Exchange 配置
MailPlus Server 需按 “邮箱别名→通讯组列表→邮件地址策略” 的顺序导入(别名需先导入,确保通讯组成员别名有效),导入前需先将 Exchange 导出的 CSV 文件上传至 DSM 共享文件夹。
3.1 上传 CSV 配置文件到 DSM
- 创建共享文件夹:
- 登录 DSM,进入【控制面板】→【共享文件夹】→【创建】;
- 名称设为 “Exchange_Import”,选择存储位置(建议非系统卷),取消 “启用回收站”(避免文件冗余),点击【下一步】完成创建。
- 上传文件:
- 打开 DSM File Station,进入 “Exchange_Import” 文件夹;
- 点击【上传】→【上传文件】,选择从 Exchange 导出的 3 个 CSV 文件(Mailbox_Aliases.csv、Distribution_Groups_Basic.csv、Distribution_Groups_Members.csv),等待上传完成。
3.2 导入 “邮箱别名” 配置
- 进入 MailPlus Server 别名管理:
- 登录 DSM,点击【套件中心】→【已安装】→【MailPlus Server】→【打开】;
- 配置导入参数:
- 点击【浏览】,选择 “Exchange_Import” 文件夹中的 “Mailbox_Aliases.csv”;
- 字段映射(关键步骤,需确保对应正确):
- “MailPlus 主邮箱”:选择 CSV 中的 “PrimarySmtpAddress”(Exchange 主邮箱需与 MailPlus 账户主邮箱一致,否则无法匹配);
- “别名”:选择 CSV 中的 “EmailAddresses”(多个别名会自动拆分,无需手动处理);
- 勾选 “若别名已存在则覆盖”(避免重复导入导致错误);
- 点击【预览】,查看前 10 条数据的映射结果,确认无误后点击【导入】。
- 监控导入进度:
- 导入过程中会显示 “已导入数量 / 总数量”,若出现失败,点击【查看日志】查看原因(如 “主邮箱不存在”,需先在 MailPlus Server 创建对应账户);
- 导入完成后,点击【别名】列表中的任意账户,检查别名是否完整显示(如 john.doe 的别名是否包含 Exchange 中的所有条目)。
3.3 导入 “通讯组列表” 配置(含成员)
需分两步导入:先导入组基本信息,再导入成员,避免成员无法匹配组。
- 导入通讯组基本信息:
- 进入 MailPlus Server【群组】→【通讯组】,点击【导入】→【导入通讯组】;
- 选择 “Distribution_Groups_Basic.csv”,字段映射:
- “主邮箱地址”:CSV 中的 “PrimarySmtpAddress”;
- “描述”:CSV 中的 “Description”;
- 导入通讯组成员:
- 点击【导入】→【导入通讯组成员】,选择 “Distribution_Groups_Members.csv”;
- “通讯组主地址”:CSV 中的 “GroupPrimaryAddress”(通过主地址匹配已导入的通讯组);
- “成员邮箱地址”:CSV 中的 “MemberAddresses”(多个成员用分号分隔,会自动拆分添加);
- 点击【导入】,导入完成后,打开任意通讯组(如 sales 组),查看【成员】标签页,确认成员数量与 Exchange 一致。
3.4 手动配置 “邮件地址策略”(MailPlus 无直接导入)
MailPlus Server 暂不支持直接导入 Exchange 的邮件地址策略,但可参考导出的 “Email_Address_Policies.csv” 手动配置类似规则:
- 进入 MailPlus Server【账户】→【地址策略】→【创建】;
- 配置策略参数(参考 Exchange 模板):
- 策略名称:与 Exchange 策略一致(如 “First.Last 策略”);
- 适用范围:选择 “所有新创建的账户” 或指定组织单元;
- 点击【确定】,新创建的 MailPlus 账户会自动应用该策略,旧账户需手动更新(选中账户→【编辑】→【邮箱】→【应用地址策略】)。
四、导入后的 3 步验证(确保配置生效)
导入完成后需通过 “配置核查→功能测试→日志确认” 验证配置有效性,避免隐性问题。
4.1 配置核查(核对关键信息)
- 邮箱别名核查:
- 通讯组核查:
- 选择 2-3 个核心通讯组(如 admin 组、sales 组),查看成员列表,确保 Exchange 中的成员(含别名成员)均已添加;
- 检查通讯组的 “发送权限”(进入【编辑】→【权限】),确保与 Exchange 一致(如是否允许外部发送)。
- 地址策略核查:
4.2 功能测试(验证实际使用效果)
- 别名接收测试:
- 登录 MailPlus 网页端(https://DSM_IP:5001/webman/3rdparty/MailPlus/),查看该账户的收件箱是否收到邮件(若未收到,检查别名是否激活)。
- 通讯组发送测试:
- 收集成员反馈,确认无成员遗漏接收(若有遗漏,检查成员邮箱是否激活,或是否在 MailPlus 的 “拒收列表” 中)。
4.3 日志确认(排查隐性错误)
- 查看导入日志:
- 进入 MailPlus Server【维护】→【日志中心】→【导入日志】;
- 筛选 “日志类型” 为 “别名导入” 或 “通讯组导入”,查看是否有 “警告” 或 “错误” 条目(如 “别名已被其他账户占用”,需手动调整冲突别名)。
- 查看邮件日志:
- 进入【日志中心】→【邮件日志】,筛选 “收件人” 为测试别名或通讯组地址,确认邮件状态为 “已投递”(而非 “被拒绝”“找不到收件人”)。
五、常见问题解答(覆盖高频导入故障)
Q1:导入邮箱别名时提示 “主邮箱不存在”,如何解决?
A:原因是 Exchange 导出的 “PrimarySmtpAddress” 在 MailPlus Server 中无对应账户,解决方案:
- 核对 CSV 中的 “PrimarySmtpAddress”(如 john.doe@domain.com)是否与 MailPlus 账户的主邮箱一致(注意大小写,MailPlus 不区分大小写,但需确保地址完全匹配);
- 若 MailPlus 未创建该账户,需先通过【账户】→【创建】手动创建,或通过 AD 域同步(参考 “Exchange 迁移到 Synology” 的域同步步骤);
- 若账户已存在但主邮箱不同,进入【编辑】→【邮箱】修改主邮箱地址,与 CSV 中的 “PrimarySmtpAddress” 一致后重新导入。
Q2:通讯组成员导入后部分成员显示 “无效邮箱”,怎么办?
A:原因是成员邮箱未在 MailPlus 激活或地址错误,解决步骤:
- 打开 “Distribution_Groups_Members.csv”,找到无效成员的邮箱地址(如 jane.smith@domain.com);
- 在 MailPlus Server【账户】中搜索该邮箱,若显示 “未激活”,点击【激活】;若显示 “不存在”,确认是否为 Exchange 中的 “软删除账户”(需在 Exchange 中恢复或手动在 MailPlus 创建);
- 若地址错误(如多写空格、字母错误),修改 CSV 中的 “MemberAddresses” 字段,重新上传并导入。
Q3:导入 CSV 时提示 “编码错误”,无法读取文件,如何处理?
A:原因是 Exchange 导出的 CSV 编码非 UTF8(如默认 ANSI 编码),解决方案:
- 在 Windows 中用记事本打开 CSV 文件;
- 点击【文件】→【另存为】,在 “编码” 下拉菜单中选择 “UTF-8”,覆盖原文件;
- 重新上传修改后的 CSV 文件到 DSM,再次执行导入操作(若仍报错,可尝试 “UTF-8-BOM” 编码)。
Q4:导入邮件地址策略后,旧账户不应用新策略,怎么处理?
A:MailPlus 的地址策略默认仅对 “新创建账户” 生效,旧账户需手动应用:
- 进入【账户】,按住 Ctrl 键批量选中需更新的旧账户;
- 点击【批量操作】→【应用地址策略】;
- 在弹出窗口中选择已配置的地址策略,点击【确定】,系统会自动为旧账户添加策略对应的邮箱地址(主地址不变,附加地址按策略添加)。
总结
将Microsoft Exchange 的系统配置导入 Synology MailPlus Server,核心是通过 “精准导出(Exchange 命令行)→正确映射(CSV 字段)→分步导入(MailPlus 功能)→全面验证(配置 + 功能)” 的流程,减少手动操作成本。关键注意事项包括:Exchange 导出时确保编码为 UTF8、MailPlus 导入时字段映射准确、导入后通过测试邮件验证生效。
若企业同时需要迁移邮件数据(而非仅配置),可结合 “Microsoft Exchange Server 迁移到 Synology” 的邮件迁移步骤,实现 “配置 + 数据” 的完整迁移。若在操作中遇到 Exchange 旧版本(如 2007)的配置导出问题,或 MailPlus 版本适配故障,可参考 Synology 知识库的 “旧版 Exchange 配置迁移” 补充文档,或联系官方技术支持获取定制化指导。