Thủ thuật công nghệ

Di chuyển hộp thư giữa các máy chủ IMAP với IMAPcopy

Di chuyển hộp thư giữa các máy chủ IMAP với IMAPcopy

Quản Trị Mạng - IMAPCopy cho phép bạn sao chép một cách đệ quy tất cả các tin nhắn email và thư mục từ tài khoản IMAP khác. Nó hỗ trợ giao thức IMAP và IMAPS. Trong bài viết này chúng tôi sẽ hướng dẫn các bạn di chuyển hộp thư giữa các máy chủ IMAP bằng cách sử dụng IMAPcopy.

<>

Một số lưu ý khi sử dụng chương trình:

  • IMAPcopy chỉ có chức năng sao chép, không xóa mail ở hộp thư nguồn.
  • Để sử dụng chương trình, bạn phải kích hoạt giao thức IMAP ở cả hai hộp thư nguồn và và hộp thư đích.
  • Chỉ có thể sao chép các mail trong INBOX, không sao chép trong SENT, DELETED, TRASH… Nếu các bạn sử dụng chương trình mail client (MS Outlook, Mozilla Thunderbird,…) để giao dịch mail thì khi sao chép mail qua hộp thư mới, mail client sẽ phải download lại toàn bộ mail.

Trong bài minh họa sau chúng tôi sử dụng hai máy chủ Debian hoặc Ubuntu. Với các distribution khác thì quy trình cũng tương tự, chỉ khác ở phần cài đặt Java bởi IMAPcopy sẽ có sự khác biệt.

<>Server nguồn: server1.example.com.
<>Server đích: server2.example.com.

Mục đích của chúng ta sẽ là di chuyển hộp thư [email protected] (username: [email protected], password: secret) trên Server1.example.com tới hộp thư [email protected] trên server2.example.com (username và password cũng giống như trên server1.example.com).

Ngoài ra người dùng Ubuntu cần lưu ý rằng cần chạy toàn bộ lệnh sau với quyền root, vì vậy hoặc là bạn thêm chuỗi sudo vào sau mỗi dòng lệnh hoặc trở thành root bằng lệnh:

sudo su

Chuẩn bị

Trước khi bắt đầu, chúng ta hãy kiểm tra cả hai hộp thư xem có những gì trong đó (bạn có thể làm điều này bằng một dịch vụ email client bất kỳ như Outlook, Thunderbird hay web mail như SquirrelMail mà chúng tôi sử dụng dưới đây).

server1.example.com:

Di chuyển hộp thư giữa các máy chủ IMAP với IMAPcopy

server2.example.com:

Di chuyển hộp thư giữa các máy chủ IMAP với IMAPcopy

Sau khi thực hiện như hướng dẫn sau, ba tin nhắn trong server1.example.com sẽ xuất hiện trong server2.example.com.

Cài đặt IMAPcopy

Việc cài đặt IMAPcopy trên server1.example.com hay server2.example.com đều không quan trọng, thậm chí bạn có thể cài nó lên một máy thứ 3 mà không có rắc rối nào.

Tuy nhiên cài đặt Java là cần thiết với IMAPcopy, vì vậy chúng ta sẽ cài đặt gói <>openjdk-6-jre. Thêm vào đó, hãy chắc chắn rằng unzip được cài đặt để có thể giải nén gói IMAPcopy.

apt-get install openjdk-6-jre unzip

Tiếp theo tải về và cài đặt IMAPcopy trong đường dẫn /usr/local/imapcopy/ như dưới đây:

cd /usr/local/
mkdir imapcopy
cd imapcopy
wget http://imapcopy.googlecode.com/files/imapCopy0.3.1.zip
unzip imapCopy0.3.1.zip

Thực thi script /usr/local/imapcopy/imapCopy.sh:

chmod +x /usr/local/imapcopy/imapCopy.sh

Tiến hành di chuyển hộp thư

Sau khi cài đặt thành công bạn bắt đầu sử dụng IMAPcopy như sau:

/usr/local/imapcopy/imapCopy.sh protocol://user[:password]@server[:port] protocol://user[:password]@server[:port]

Giao thức này có thể dùng IMAP hoặc IMAPS. Nếu tên người dùng là địa chỉ email cần lưu ý thay thế <>@ bằng <>%40. Cuối cùng dòng lệnh để sao chép các tin nhắn email từ [email protected] trên server1.example.com tới [email protected] trên server2.example.com sẽ là:

/usr/local/imapcopy/imapCopy.sh imap://sales%40example.com:[email protected] imap://sales%40example.com:[email protected]

Và đây là một ví dụ về đầu ra:

root@server1:/usr/local/imapcopy# /usr/local/imapcopy/imapCopy.sh imap://sales%40example.com:[email protected] imap://sales%40example.com:[email protected]
2011-09-30 13:28:27,751  INFO ImapCopier - Starting
2011-09-30 13:28:27,751 DEBUG ImapCopier - Parameters length:2
2011-09-30 13:28:27,751 DEBUG ImapCopier - opening conections
2011-09-30 13:28:27,751 DEBUG ImapCopier - opening imap conection to server1.example.com
2011-09-30 13:28:28,737 DEBUG ImapCopier - opening imap conection to server2.example.com
2011-09-30 13:28:28,998 DEBUG ImapCopier - Creating target Folder: Drafts
2011-09-30 13:28:29,030 DEBUG ImapCopier - Copying 0 messages from Drafts Folder
2011-09-30 13:28:29,033 DEBUG ImapCopier - Creating target Folder: Junk
2011-09-30 13:28:29,058 DEBUG ImapCopier - Copying 0 messages from Junk Folder
2011-09-30 13:28:29,059 DEBUG ImapCopier - Creating target Folder: Trash
2011-09-30 13:28:29,061 DEBUG ImapCopier - Copying 0 messages from Trash Folder
2011-09-30 13:28:29,061 DEBUG ImapCopier - Creating target Folder: Sent
2011-09-30 13:28:29,120 DEBUG ImapCopier - Copying 0 messages from Sent Folder
2011-09-30 13:28:29,527 DEBUG ImapCopier - Copying 3 messages from INBOX Folder
root@server1:/usr/local/imapcopy#

Lúc này trên server đích (server2.example.com) sẽ nhìn thấy những email từ máy server1.example.com:

Di chuyển hộp thư giữa các máy chủ IMAP với IMAPcopy