imapsync: đồng bộ email giữa 2 mailserver

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

Comments Off on imapsync: đồng bộ email giữa 2 mailserver

Filed under Software

Comments are closed.