如何在CentOS 7上使用Imapsync轻松迁移邮箱
月月
・5 分钟阅读
使用不同的系统?
虽然迁移网站通常不是问题,但是,有时迁移电子邮箱更加困难。尤其是当两个服务器使用不同的软件时,幸运的是,imapsync可以简化这个任务。
Imapsync可以使用IMAP协议同步邮箱,这仅在你使用IMAP检索电子邮件时,或者如果你不使用POP协议从服务器上删除电子邮件时才有效。
前提条件
- CentOS 7服务器实例,
- 一个sudo用户。
安装
通过yum
安装对EPEL仓库的访问。
sudo yum install epel-release
首先,你需要安装运行Imapsync所必需的:
sudo yum install perl-App-cpanminus
perl-Dist-CheckConflicts
perl-HTML-Parser
perl-libwww-perl
perl-Module-Implementation
perl-Module-ScanDeps
perl-Package-Stash
perl-Package-Stash-XS
perl-PAR-Packer
perl-Regexp-Common
perl-Sys-MemInfo
perl-Test-Fatal
perl-Test-Mock-Guard
perl-Test-Requires
perl-Test-NoWarnings
perl-Test-Deep
perl-Test-Warn
perl-Try-Tiny
从它官方Git存储库下载最新的Imapsync代码。
git clone https://github.com/imapsync/imapsync.git
导航到新克隆的库,并在系统上使用以下命令安装它。
cd imapsync
mkdir -p dist
sudo make install
你可以使用以下命令检查Imapsync的版本。
imapsync -v
同步电子邮件
下面显示了将电子邮件从server1同步到server2的语法。
imapsync --host1 server1.imap.tld --user1 mailbox@email.tld --password1 password1 --host2 server2.imap.tld --user2 mailbox@email.tld --password2 password2
密码
为了避免输入纯文本邮箱密码,可以将它们存储在文件中,并且使用--passfile1
和--passfile2
参数自动加载密码。
imapsync --host1 server1.imap.tld --user1 mailbox@email.tld --passfile2 /home/user/pass1 --host2 server2.imap.tld --user2 mailbox@email.tld --passfile2 /home/user/pass2
IMAP服务器的连接
有几个选项可用于将Imapsync连接到邮件服务器,包括使用的连接类型,默认情况下,imapsync将尝试在端口993
上使用SSL或TLS进行连接,下面是服务器上连接(将1
与2
替换为第二个服务器)的连接例子。
- 通过端口
143
进行未加密连接的--nossl1
(不推荐) --ssl1
用于通过端口993
加密与SSL的连接--tls1
通过端口993
与TLS连接
还有定义身份验证类型的选项,这是使用--authmech1和--authmech2参数指定的,它可能的值如下(大写)。
PLAIN
LOGIN
CRAM-MD5
文件夹
文件夹同步可能会导致问题,特别是如果两个邮件服务器上的默认文件夹(\"Inbox \",\"Spam\" ,\"Archive \" ,\"Sent\")的名称不同,Imapsync为此提供了几个选项:
--automap
使用自动默认文件夹识别,--nomixfolders
以避免根据大小写区分合并有相似名称的文件夹,--prefix1
从文件夹中删除要迁移的前缀,--prefix2
向已迁移的文件夹添加前缀,--skipemptyfolders
在目标服务器上不重新创建空文件夹,
迁移选项
为了加快电子邮件迁移速度,你可以使用--usecache
参数临时存储安装Imapsync的服务器上的文件夹。
你还可以使用--delete1参数从第一台服务器中删除邮件。
最后,开始迁移之前,可以使用--dry参数检查命令的结果,而不会真正执行它。