Google Workspace怎么迁移到Synology?MailPlus/Contacts/Calendar全流程实操
在企业数据管理中,许多用户因“数据本地化”“权限自主控制”需求,希望将Google Workspace的电子邮件、联系人和日历数据,迁移到Synology生态的MailPlus、Contacts和Calendar套件中。但Google Workspace到Synology的迁移涉及服务授权、账户映射、数据同步三大核心环节,若缺乏清晰指引,易出现“密钥无效”“用户匹配失败”“数据丢失”等问题。
本文基于Synology官方迁移指南(参考链接:https://kb.synology.cn/zh-cn/DSM/tutorial/Google_Workspace_migration_guide),从“迁移准备→邮件迁移→联系人和Calendar迁移→故障排除”四大模块,提供step-by-step实操教程,覆盖从服务密钥生成到数据验证的每一步,无论你是IT管理员还是个人用户,都能按流程顺利完成Google Workspace到Synology的全数据迁移。
一、迁移准备:3项核心前置操作(密钥+账户类型+用户列表)
在启动迁移前,需先完成“服务帐户密钥生成”“Synology账户类型匹配”“用户列表制作”——这是确保迁移成功的基础,缺一不可,具体步骤如下:
1. 生成Google Workspace服务帐户密钥(授权Synology访问数据)
要让Synology有权读取Google Workspace的数据,需在Google Cloud平台创建服务帐户并生成密钥文件,操作如下(需Google Workspace管理员权限):
1. 打开浏览器,登录[Google Cloud控制台](https://console.cloud.google.com/),创建新项目(或选择现有项目),命名如“Synology Migration”。
2. 在左侧导航栏找到“IAM与管理”→“服务帐户”,点击“创建服务帐户”,输入账户名称(如“synology-migrate”)和描述,点击“创建并继续”。
3. 为服务帐户添加权限:在“添加角色”下拉框中,搜索并勾选“Google Workspace API客户端访问”“Gmail API”“Contacts API”“Calendar API”相关权限(确保覆盖邮件、联系人、日历的读取权限),点击“继续”→“完成”。
4. 找到已创建的服务帐户,点击右侧“操作”→“管理密钥”,在“密钥”标签页点击“添加密钥”→“创建新密钥”,选择密钥类型为“JSON”,点击“创建”,密钥文件(如“xxx.json”)将自动下载到本地,保存该文件,后续迁移需上传到Synology。
2. 调整Synology账户类型(确保与Google账户匹配)
Synology MailPlus和Contacts的账户类型(本地用户/LDAP用户/域用户)必须与Google Workspace目标账户类型一致,否则会出现“账户无法映射”问题,需分别在两个套件中设置:
(1)MailPlus Server账户类型设置
1. 登录Synology DSM管理界面,启动“MailPlus Server”。
2. 在左侧导航栏点击“服务”→“协议”,找到“SMTP”部分,在“账户类型”下拉框中选择与目标账户匹配的类型(如“本地用户”,若使用LDAP或域账户则对应选择)。
3. 点击“应用”保存设置,确保MailPlus账户类型与后续导入的用户列表类型一致。
(2)Synology Contacts账户类型设置
1. 启动“Synology Contacts”套件,点击界面右上角“设置”(齿轮图标)。
2. 在设置窗口中切换到“高级”标签页,找到“账户类型”选项,选择与MailPlus一致的类型(如“本地用户”)。
3. 点击“保存”,完成Contacts账户类型配置。
3. 制作用户列表(CSV格式,分邮件迁移/联系日历迁移)
用户列表用于将Google Workspace账户与Synology账户一一映射,邮件迁移和联系日历迁移的CSV格式不同,不可互换,需分别制作:
(1)邮件迁移专用CSV(命名建议“userlist_mailplus.csv”)
用Microsoft Excel或OpenOffice创建CSV文件,包含3列(无表头,顺序不可错),具体说明如下:
| 列1:Google Workspace帐户 | 列2:Google Workspace密码 | 列3:MailPlus帐户 |
|--------------------------|--------------------------|------------------|
| 输入Google账户邮箱(如yuki@example.com) | 留空(因已用服务密钥授权,无需密码) | 本地用户填账户名(如yuki);LDAP/域用户填全名(如user1@domain或domainuser1) |
示例内容(CSV文件用逗号分隔,无表格格式):
yuki@example.com,,yuki
jack@example.com,,jack
selma@example.com,,selma
(2)联系人和Calendar迁移专用CSV(命名建议“userlist_contact.csv”)
同样用Excel/OpenOffice创建,包含3列(无表头,顺序不可错),说明如下:
| 列1:帐户类型 | 列2:Google Workspace帐户 | 列3:DSM帐户 |
|--------------|--------------------------|--------------|
| 填“user”(用户)或“group”(群组,仅同步共享权限,不迁移数据) | 输入Google账户邮箱(如yuki@example.com) | 本地用户填账户名(如yuki);LDAP/域用户填全名(如user1@domain) |
示例内容:
user,yuki@example.com,yuki
user,jack@example.com,jack
group,sales@example.com,sales
制作完成后,将两个CSV文件保存到电脑本地,后续迁移时上传到Synology。
二、邮件迁移:Google Workspace邮件到Synology MailPlus的5步操作
邮件迁移是核心环节,Synology MailPlus支持增量迁移(迁移期间Google账户可正常使用,后续更改会同步),具体步骤如下:
1. 创建邮件迁移任务
1. 启动Synology MailPlus Server,在左侧导航栏点击“服务器管理”→“邮件迁移”。
2. 点击界面右上角“创建”,打开“新建迁移任务”窗口,切换到“常规”标签页,填写基础信息:
- 任务:输入任务名称(如“Google到MailPlus迁移_2024”,便于识别)。
- 选择服务器类型:下拉框中选择“Google Workspace”。
- Google Workspace服务密钥:点击“上传”,选择之前下载的JSON密钥文件(如“xxx.json”),完成上传。
- (可选)高级设置:可设置“每个时段迁移的帐户数量”(避免并发过高导致失败,建议5-10个/时段)和“任务时间”(如选择非工作时间迁移,减少影响)。
3. 切换到“用户列表”标签页,点击“导入”,选择本地制作的“userlist_mailplus.csv”文件,导入后系统会自动校验账户格式,若有错误(如账户类型不匹配)会提示,需修正后重新导入。
4. 校验无误后,点击“下一步”进入后续设置。
2. 配置邮箱过滤器(按需迁移/跳过特定邮箱)
若需仅迁移特定邮箱(如“Inbox”“Sent”)或跳过垃圾邮件文件夹,可设置过滤器:
1. 在“过滤器”标签页,勾选“启用邮箱过滤器”复选框。
2. 选择策略:“按关键字跳过邮箱”(匹配关键字的邮箱不迁移)或“按关键字迁移邮箱”(仅匹配关键字的邮箱迁移)。
3. 点击“设置关键字”,在“关键字”框中输入邮箱名称(如“Trash”“Spam”),若有例外邮箱(如虽含“Spam”但需迁移的“Spam_Important”),在“例外”框中输入。
- 注:可使用正则表达式(前后加斜杠,如/^Inbox/匹配以“Inbox”开头的邮箱)。
4. 点击“确定”保存过滤器设置。
3. 设置迁移通知(实时了解迁移结果)
为及时获取每个账户的迁移状态,需配置通知:
1. 在“通知”标签页,勾选“发送迁移结果通知”复选框。
2. 输入通知接收邮箱(如管理员邮箱admin@your-synology.com),可设置“每个账户迁移完成后通知”或“全部账户完成后汇总通知”。
- 注意:需先在MailPlus Server“服务”→“协议”中启用SMTP服务,否则通知无法发送。
3. 点击“确定”完成通知配置。
4. 运行迁移任务并监控进度
1. 返回“邮件迁移”页面,找到刚创建的任务,点击上方工具栏“开始”,任务进入“运行中”状态。
2. 监控迁移进度:
- 点击任务右侧“信息”图标(文档图标),可查看“已迁移账户数”“成功数”“失败数”等统计数据,以及详细日志(如失败原因:账户不存在、权限不足)。
- 若需暂停任务,点击“停止”,修改设置后可再次点击“开始”继续(增量迁移会延续之前进度,不重复迁移已成功数据)。
3. 迁移时间:根据账户数量和单账户邮件大小,可能需要几天到几周,建议在切换到MailPlus前启动迁移,确保数据完全同步。
5. 迁移完成后切换到MailPlus
1. 待所有账户迁移成功(日志显示“全部完成”),通知管理员和用户切换邮件客户端设置:将之前连接Google Workspace的客户端(如Outlook、手机邮件APP),重新配置为连接Synology MailPlus(服务器地址、端口等信息在MailPlus Server“服务”→“协议”中查看)。
2. 建议保留Google Workspace邮件1-2周,确认MailPlus数据完整后,再关闭Google相关服务。
三、联系人和Calendar迁移:需安装工具+SSH命令行操作
联系人和Calendar迁移需额外安装Synology官方迁移工具,且通过SSH执行命令,步骤较邮件迁移复杂,需谨慎操作:
1. 安装Google Workspace迁移工具
根据DSM版本下载对应工具(仅支持DSM 7.0及以上):
- DSM 7.2及以上:下载适配7.2的SPK文件(可从Synology官方教程页面获取)。
- DSM 7.0/7.1:下载适配7.0-7.1的SPK文件。
安装步骤:
1. 登录DSM管理界面,点击“套件中心”→“手动安装”。
2. 点击“浏览”,选择下载的SPK文件,点击“下一步”→“安装”,等待安装完成(安装后在“已安装套件”中可看到“Google Workspace Migration Tool”)。
2. 上传文件并通过SSH登录DSM
1. 在DSM“控制面板”→“共享文件夹”中,创建一个专用共享文件夹(如命名“Migration”),将“服务密钥JSON文件”“userlist_contact.csv”上传到该文件夹。
2. 通过SSH登录DSM:
- Windows用户:使用PuTTY或CMD,输入命令`ssh 用户名@DSM局域网IP`(如`ssh admin@192.168.1.100`),输入密码后登录。
- Mac用户:打开“终端”,输入相同SSH命令登录。
3. 获取root权限:登录后输入命令`sudo -i`,按提示输入DSM管理员密码,成功后命令行前缀变为“”,表示已进入root模式。
3. 执行联系人和Calendar迁移命令
1. 切换到共享文件夹目录:输入命令`cd /volumeX/共享文件夹名`(X为存储池编号,如“Migration”在volume1,则命令为`cd /volume1/Migration`),按回车确认。
2. 执行迁移命令:输入以下命令(需替换为实际文件路径):
```bash
/var/packages/GWS-Migrate/target/bin/migrate 服务密钥路径 用户列表路径
```
示例(密钥文件为“gwskey.json”,用户列表为“userlist_contact.csv”):
```bash
/var/packages/GWS-Migrate/target/bin/migrate /volume1/Migration/gwskey.json /volume1/Migration/userlist_contact.csv
```
3. 按回车执行命令,终端会显示迁移进度(如“正在迁移yuki@example.com的联系人”),等待命令执行完成(无报错信息则表示迁移成功)。
4. 查看迁移结果与日志
迁移完成后,在“Migration”共享文件夹中会生成3个关键文件,用于验证和排查问题:
- ccm_debug.log:详细执行日志,若迁移失败,可查看此文件定位原因(如“服务密钥无效”“目标账户无权限”)。
- result_user_list.csv:记录每个Google账户的迁移状态(“user_mapping”表示成功,“failed”表示失败),若需重新迁移,可将此文件作为用户列表再次执行命令(系统会跳过已成功账户)。
- owner_sharing_calendars.txt:记录多所有者的Google日历(如“团队日历”有User1和User2两个所有者),迁移后会在两人的Synology Calendar中各生成一份,若需保留一份,可让非所有者删除重复日历。
5. 迁移后验证数据
1. 启动“Synology Contacts”,登录每个用户账户,检查联系人数量、信息(如电话、邮箱)是否与Google Contacts一致,确认“其他联系人”已迁移到“syno_suggested”文件夹。
2. 启动“Synology Calendar”,查看日历名称、事件(时间、参与者)是否完整,注意重复事件(多所有者导致)需手动清理。
四、迁移限制与故障排除(避免踩坑)
1. 明确迁移限制(这些数据无法迁移)
部分Google Workspace数据因Synology不支持或Google未开放接口,无法迁移,需提前告知用户:
(1)联系人迁移限制
- 不迁移:前缀、后缀、拼音名(姓/名/中间名)、关系、自定义字段。
- 特殊处理:无名联系人若有邮箱,全名显示为邮箱地址;无邮箱则显示为“无名”;“其他联系人”迁移到“syno_suggested”。
(2)Calendar迁移限制
- 不迁移:订阅的日历(仅共享日历迁移)、通知设置、预约时段、全天事件通知、附加文件、空闲/忙碌信息、可见性设置、来宾权限、事件颜色、组织者不在用户列表的事件、任务时间(仅显示日期)、任务重复规则。
- 特殊处理:
- 多所有者日历:迁移后复制到每个所有者账户。
- 事件HTML格式:转换为纯文本,HTML标签会显示。
- 重复事件修改:编辑过的单次重复事件,会作为独立新事件迁移。
- 事件时区:开始和结束时区不同时,结束时间按开始时区调整。
- 提醒:仅迁移前5个提醒,时间按Synology Calendar选项调整(如Google设置“提前7分钟”,Synology会调整为“提前10分钟”,具体对应关系见下文表格)。
(3)任务迁移限制
- 子任务:作为独立任务迁移,无层次结构。
- 默认任务列表:迁移为“一般任务列表”。
Google Calendar事件提醒时间对应表(部分关键项):
| 事件类型 | Google Calendar提醒时间 | Synology Calendar调整后时间 |
|----------|-------------------------|-----------------------------|
| 全天事件 | ≤3小时 | 前一天21:00 |
| 全天事件 | ≤147小时(6天) | 前一周21:00 |
| 定时事件 | ≤5分钟 | 提前5分钟 |
| 定时事件 | ≤168小时(7天) | 提前7天 |
| 定时事件 | >168小时 | 提前14天 |
2. 常见故障排除(解决90%迁移问题)
故障1:服务密钥无效,迁移提示“授权失败”
- 原因:密钥文件损坏、服务账户权限不足、Google Workspace未启用API。
- 解决:
1. 重新生成服务密钥(确保步骤1中权限勾选完整)。
2. 登录Google Workspace管理后台,在“API和服务”中确认“Gmail API”“Contacts API”“Calendar API”已启用。
故障2:用户列表导入失败,提示“账户类型不匹配”
- 原因:CSV中账户类型(如LDAP用户)与Synology MailPlus/Contacts设置的账户类型(如本地用户)不一致。
- 解决:
1. 检查MailPlus“服务>协议”和Contacts“设置>高级”中的账户类型。
2. 重新制作CSV文件,确保账户格式与设置一致(如LDAP用户填“user1@domain”)。
故障3:联系日历迁移后无数据,日志显示“目标账户无权限”
- 原因:Synology账户未被授予Contacts/Calendar的使用权限。
- 解决:
1. 登录DSM“控制面板”→“应用权限”。
2. 找到“Synology Contacts”和“Synology Calendar”,勾选目标账户的“使用权限”,点击“保存”。
故障4:重新迁移时重复迁移已成功数据
- 原因:未使用“result_user_list.csv”作为用户列表,系统无法识别已成功账户。
- 解决:
1. 在共享文件夹中找到“result_user_list.csv”。
2. 执行迁移命令时,将用户列表路径替换为该文件路径(如`migrate /volume1/Migration/gwskey.json /volume1/Migration/result_user_list.csv`)。
总结:Google Workspace到Synology迁移的核心流程与建议
完整迁移流程可概括为:准备阶段(密钥+账户类型+用户列表)→邮件迁移(创建任务→运行同步)→联系日历迁移(安装工具→SSH命令)→验证数据→处理异常。为确保迁移顺利,建议:
1. 迁移前备份Google Workspace数据(通过Google Takeout导出),避免意外丢失。
2. 先迁移1-2个测试账户(如管理员账户),验证流程无问题后再批量迁移。
3. 迁移期间保持Synology NAS联网稳定,避免断电或重启导致任务中断。
4. 若遇到复杂问题,可参考Synology官方知识库(原文链接:https://kb.synology.cn/zh-cn/DSM/tutorial/Google_Workspace_migration_guide)或联系Synology技术支持。
通过以上步骤,你可将Google Workspace的邮件、联系人和日历数据完整迁移到Synology,实现数据本地化管理,同时享受Synology生态的灵活权限控制和存储扩展能力。
地址:北京市海淀区白家疃尚品园 1号楼225
北京群晖时代科技有限公司