Vấn đề khó khăn khi đổi dịch vụ email là làm thế nào để không mất email ở dịch vụ cũ! Di chuyển email không đơn giản là sao chép các email cũ vì khó khăn trước hết là số lượng lớn email, cách tổ chức dữ liệu của các mail server khác nhau, sử dụng các phần mềm quản lý email khác nhau, mã hoá khác nhau …
imapsync đóng vai trò trung gian, không cần biết đến tổ chức bên trong mail server, yêu cầu email từ một mail server và chuyển nó đến mail server khác qua giao thức IMAP. Các mail client như thunderbird, roundcube cũng có tính năng Export/Import email tương tự như vậy nhưng làm thủ công.
Để cài đặt imapsync, trước hết thêm vào /etc/apt/sources.list file :
Debian 9 Stretch
deb http://deb.debian.org/debian stretch main contrib
Debian 10 Buster
deb http://deb.debian.org/debian buster main contrib
1a. Cài đặt thư viện Perl và các gói cần thiết
apt install -y \
libauthen-ntlm-perl \
libcgi-pm-perl \
libcrypt-openssl-rsa-perl \
libdata-uniqid-perl \
libencode-imaputf7-perl \
libfile-copy-recursive-perl \
libfile-tail-perl \
libio-socket-inet6-perl \
libio-socket-ssl-perl \
libio-tee-perl \
libhtml-parser-perl \
libjson-webtoken-perl \
libmail-imapclient-perl \
libparse-recdescent-perl \
libmodule-scandeps-perl \
libreadonly-perl \
libregexp-common-perl \
libsys-meminfo-perl \
libterm-readkey-perl \
libtest-mockobject-perl \
libtest-pod-perl \
libunicode-string-perl \
liburi-perl \
libwww-perl \
libtest-nowarnings-perl \
libtest-deep-perl \
libtest-warn-perl \
make \
cpanminus
1b. Cài đặt các module Python cần thiết bằng cách dùng CPAN
sudo cpanm Mail::IMAPClient JSON::WebToken Test::MockObject
sudo cpanm Unicode::String Data::Uniqid
1C. Cài đặt imapsync
git clone https://github.com/imapsync/imapsync.git
cd imapsync
mkdir -p dist
sudo make install
Xong rồi, chúng ta đã cài đặt xong phần mềm trị giá 120 Euro.
2. Di chuyển email bằng IMAP
imapsync --host1 imap.domainA.com \
--user1 user@domainA.com \
--password1 S0urcePassw0rd \
--ssl1 \
--host2 imap.domainB.com \
--user2 user@domainB.com \
--password2 Dest1nat10NPassw0rd \
--ssl2
Các tham số tận cùng là 1 thuộc về nguồn, 2 thụộc về đich. imapsync có nhiều option, tuy nhiên các option mặc định đã phù hợp cho nhiều trường hợp.
- Imapsync thử dùng ssl hoặc tls
- Imapsync syncs tất cả folders của host1
- Imapsync syncs all email từ host1, trừ khi trùng lặp.
- Imapsync không sync lại các email đã sync.
- Imapsync syncs tất cả flags, ít nhất là những flags được phép ở host2.
- Imapsync resyncs flags ở các email đã synced.
3. Thử nghiệm
# sync giữa các server thử nghiệm của https://imapsync.lamiral.info
imapsync --testslive
Một vài tiện ích dạng script chạy trên Linux, Windows, Mac OS có trong thư mục examples