来源:DeepSeek
一、工具简介
imapsync 是一个强大的 IMAP 邮件迁移工具,用于在两个 IMAP 服务器之间同步或迁移邮件数据。它能够:
- 在不同邮件服务提供商之间迁移邮件(如 Gmail、Outlook、Exchange 到其他服务)
- 在服务器升级或更换时迁移邮件账户
- 备份邮件数据到另一个 IMAP 服务器
- 同步两个邮件账户的内容
主要特点:
- 支持 SSL/TLS 加密连接
- 保留原始邮件日期、标志(已读/未读、星标等)和文件夹结构
- 能够处理大量邮件
- 支持增量同步
- 可跳过或删除目标服务器上已有的邮件
二、基本使用语法
1 2 3
| imapsync \ --host1 source.imap.server --user1 user1@domain.com --password1 secret1 \ --host2 destination.imap.server --user2 user2@domain.com --password2 secret2
|
三、常用参数说明
参数 |
说明 |
--host1 , --host2 |
源/目标 IMAP 服务器地址 |
--user1 , --user2 |
源/目标邮箱账号 |
--password1 , --password2 |
源/目标邮箱密码 |
--port1 , --port2 |
指定端口(默认 143,SSL 为 993) |
--ssl1 , --ssl2 |
使用 SSL 连接 |
--nossl1 , --nossl2 |
不使用 SSL 连接 |
--tls1 , --tls2 |
使用 TLS 连接 |
--notls1 , --notls2 |
不使用 TLS 连接 |
--folder |
指定要同步的文件夹(默认同步所有) |
--exclude |
排除特定文件夹 |
--dry |
试运行,不实际传输邮件 |
--noauthmd5 |
禁用 MD5 认证 |
--delete1 |
从源服务器删除已成功迁移的邮件 |
--delete2 |
使目标文件夹内容与源完全一致(删除目标端多余的邮件) |
--delete2duplicates |
删除目标服务器的重复邮件 |
--expunge1 |
在源服务器执行 EXPUNGE 操作 |
--expunge2 |
在目标服务器执行 EXPUNGE 操作 |
四、使用示例
- 基本迁移(Gmail 到 Office 365):
1 2 3 4 5
| imapsync \ --host1 imap.gmail.com --user1 user@gmail.com --password1 gmailpassword \ --ssl1 --port1 993 \ --host2 outlook.office365.com --user2 user@domain.com --password2 officepassword \ --ssl2 --port2 993
|
- 同步特定文件夹:
1
| imapsync ... --folder "INBOX" --folder "Sent" --folder "Projects"
|
- 排除某些文件夹:
1
| imapsync ... --exclude "Trash" --exclude "Junk"
|
- 使用安全连接但不验证证书:
1
| imapsync ... --sslargs1 SSL_verify_mode=0 --sslargs2 SSL_verify_mode=0
|
- 使用应用程序密码(适用于开启了双重验证的账户):
1
| imapsync ... --password1 yourapppassword
|
五、注意事项
- 对于大型邮箱,迁移可能需要很长时间(几天)
- Gmail 账户可能需要启用”允许不太安全的应用”或创建应用程序专用密码
- 某些服务器有速率限制,可能需要添加
--maxrate
参数限制速度
- 可以使用
--exitwhenover
参数在达到配额时退出
- 建议首次运行时添加
--dry
参数进行测试
六、高级用法
- 保存和恢复同步状态:
1
| imapsync ... --state statefile.txt
|
- 从上次中断处继续:
1
| imapsync ... --state statefile.txt
|
- 仅同步特定日期之后的邮件:
1
| imapsync ... --minage 30
|
- 限制带宽使用:
1
| imapsync ... --maxbytespersecond 100000
|
七、问题排查
如果遇到问题,可以添加以下参数获取更多信息:
--debug
显示调试信息
--debugimap
显示 IMAP 协议级别的调试信息
--nofoldersizes
不计算文件夹大小(可加速初始连接)
更多详细信息和高级用法,请参考官方文档或使用 man imapsync
命令查看手册页。