Cách di chuyển hộp thư giữa các máy chủ IMAP bằng imapsync

theanh

Administrator
Nhân viên
Hướng dẫn này giải thích cách bạn có thể di chuyển hộp thư giữa các máy chủ IMAP bằng imapsync. imapsync là công cụ đồng bộ hóa, đồng bộ hóa, sao chép hoặc di chuyển IMAP. Hơn 32 phần mềm máy chủ IMAP khác nhau được hỗ trợ thành công. Tất cả các cờ đều được giữ nguyên, chưa đọc sẽ vẫn là chưa đọc, đã đọc sẽ vẫn là đã đọc, đã xóa sẽ vẫn là đã xóa.

1 Lưu ý sơ bộ​

Tôi đang sử dụng hai máy chủ Debian hoặc Ubuntu tại đây (quy trình sẽ giống nhau đối với các bản phân phối khác, chỉ có cài đặt imapsync là khác):
  • server1.example.com (nguồn)
  • server2.example.com (mục tiêu)
Tôi muốn di chuyển hộp thư [emailprotected] (tên người dùng: [emailprotected], mật khẩu: secret) trên server1.example.com sang hộp thư [emailprotected] trên server2.example.com (tên người dùng và mật khẩu giống như trên server1.example.com).

2 Trước khi bắt đầu​

Trước khi bắt đầu, chúng ta hãy xem cả hai hộp thư để xem có gì trong đó (bạn có thể thực hiện việc này bằng ứng dụng email như Outlook, Thunderbird hoặc ứng dụng email dựa trên web như SquirrelMail - Tôi đang sử dụng SquirrelMail tại đây).

server1.example.com:



server2.example.com:



Sau khi di chuyển, hai thông báo trên server1.example.com sẽ có sẵn trên server2.example.com.

3 Cài đặt imapsync​

Không quan trọng nếu chúng ta cài đặt imapsync trên server1.example.com hay server2.example.com - chúng ta thậm chí có thể cài đặt nó trên một máy chủ thứ ba không liên quan.
Mã:
aptitude install imapsync
Để tìm hiểu về cách sử dụng của nó, hãy xem
Mã:
man imapsync

Mã:
imapsync --help

4 Thực hiện di chuyển​

Chúng ta phải cho imapsync biết tên người dùng và mật khẩu của các tài khoản email mà chúng tôi muốn di chuyển. Về mặt lý thuyết, chúng ta có thể sử dụng các công tắc --password1 và --password2 cho mật khẩu, nhưng điều này rất nguy hiểm vì mật khẩu sẽ xuất hiện trong đầu ra của
Mã:
ps aux
(Vì vậy, bất kỳ người dùng nào được phép chạy lệnh đó đều sẽ biết mật khẩu.)

Do đó, tốt hơn là tạo hai tệp (/etc/secret1 và /etc/secret2 trong ví dụ này) chứa mật khẩu (trong ví dụ này, đó là secret cho cả hai tài khoản email), thực hiện chmod 600 trên các tệp này và sử dụng các công tắc --passfile1 và --passfile2.
Mã:
echo "secret" > /etc/secret1
echo "secret" > /etc/secret2
chmod 600 /etc/secret1
chmod 600 /etc/secret2
Bây giờ chúng ta có thể thực hiện di chuyển bằng lệnh đơn giản này:
Mã:
imapsync --host1 server1.example.com --user1 [emailprotected] --passfile1 /etc/secret2 --host2 server2.example.com --user2 [emailprotected] --passfile2 /etc/secret2
Sau đây là một mẫu đầu ra:
Mã:
root@server1:~#imapsync--host1server1.example.com--user1[emailprotected]--passfile1/etc/secret2
--host2server2.example.com--user2[emailprotected]--passfile2/etc/secret2
$RCSfile:imapsync,v$$Phiên bản:1.252$$Ngày:2008/05/0802:30:17$
Đây là[linux]system(Linuxserver1.example.com2.6.28-11-server#42-UbuntuSMPFri 17/04 02:45:36UTC2009x86_64)
với perl5.10.0 vàmoduleMail::IMAPClientversionusedhereis2.2.9
Dòng lệnhused:
/usr/bin/imapsync--host1server1.example.com--user1[emailprotected]--passfile1/etc/secret2
--host2server2.example.com--user2[emailprotected]--passfile2/etc/secret2
Bậtđồng bộngày nội bộ,sẽđặtngày nội bộ atesonhost2sameashost1.
Múi giờ:[CEST]
Sẽ cố gắng sử dụng xác thực CRAM-MD5 trên host1
Sẽ cố gắng sử dụng xác thực CRAM-MD5 trên host2
Từ imapserver[server1.example.com]cổng[143]người dùng[[emailprotected]]
Đến imapserver[server2.example.com]cổng[143]người dùng[[emailprotected]]
Biểu ngữ:*OK[CAPABILITYIMAP4rev1UIDPLUSCHILDRENNAMESPACETHRE AD=ORDEREDSUBJECTTHREAD=REFERENCESSORTQUOTA
IDLEACLACL2=UNIONSTARTTLS]Courier-IMAPready.Copyright1998-2008DoublePrecision,Inc.Xem thông tin sao chépđể phân phối.
Hostserver1.example.com cho biết KHÔNG CÓ KHẢ NĂNG XÁC THỰC CHO XÁC THỰC XÁC NHẬNRAM-MD5
Lỗi đăng nhập:[server1.example.com]với người dùng[[emailprotected]]xác thực[CRAM-MD5]:3KHÔNGĐăng nhập không thành công.
 
Đang thử LOGINAuthmechanism[server1.example.com]withuser[[emailprotected]]
Đăng nhập thành công[server1.example.com]withuser[[emailprotected]]auth[CRAM-MD5]
Banner:*OK[CAPABILITYIMAP4rev1UIDPLUSCHILDRENNAMESPACETHREAD=ORDEREDSUBJECTTHREAD=REFERENCESSORTQUOTA
IDLEACLACL2=UNIONSTARTTLS]Courier-IMAPready.Copyright1998-2008DoublePrecision,Inc.Xem thông tin COPYINGfordistribution.
Hostserver2.example.com cho biết KHÔNG CÓ KHẢ NĂNG CHO AUTHENTICATECRAM-MD5
Lỗi đăng nhập:[server2.example.com]withuser[[emailprotected]]auth[CRAM-MD5]:3NOLogininfail.
 
Thử cơ chế xác thực LOGIN[server2.example.com]với người dùng[[emailprotected]]
Đăng nhập thành công[server2.example.com]với người dùng[[emailprotected]]xác thực[CRAM-MD5]
Từkhả năng:QUOTASTARTTLSNAMESPACEIDLETHREAD=ORDEREDSUBJECTACLSORTUIDPLUSCHILDRENACL2=UNIONIMAP4REV1THREAD=TÀI LIỆU THAM KHẢO
Đếnkhả năng:QUOTASTARTTLSNAMESPACEIDLETHREAD=ORDEREDS UBJECTACLSORTUIDPLUSCHILDRENACL2=UNIONIMAP4REV1THREAD=TÀI LIỆU THAM KHẢO
Từ trạng thái đã xác thực
Đến trạng thái đã xác thực
Từ dấu phân cách và tiền tố:[.][HỘP THƯ ĐẾN.]
Đến dấu phân cách và tiền tố:[.][HỘP THƯ ĐẾN.]
++++Tính toán kích thước++++
Từ Thư mục[HỘP THƯ ĐẾN]Kích thước:2412Tin nhắn:2
Từ Thư mục[HỘP THƯ ĐẾN.Bản nháp]Kích thước:0Tin nhắn:0
Từ Thư mục[HỘP THƯ ĐẾN.Đã gửi]Kích thước:0Tin nhắn s:0
FromFolder[INBOX.Thùng rác]Kích thước:0Tin nhắn:0
Tổng kích thước:2412
Tổng số tin nhắn:2
Thời gian:11 giây
++++Tính toán kích thước++++
ToFolder[INBOX]Kích thước:16844Tin nhắn:6
ToFolder[INBOX.Drafts]Kích thước:0Tin nhắn:0
ToFolder[INBOX.Sent]Kích thước:0Tin nhắn:0
ToFolder[INBOX.Thùng rác]Kích thước:0Tin nhắn:0
ToFolder[INBOX.Thùng rác]Kích thước:0Tin nhắn:0
Tổng kích thước:16844
Tổng số tin nhắn:6
Thời gian:0 giây
 ++++Danh sách thư mục++++
Từ danh sách thư mục:[HỘP THƯ ĐẾN][HỘP THƯ ĐẾN.Bản nháp][HỘP THƯ ĐẾN.Đã gửi][HỘP THƯ ĐẾN.Thùng rác]
Đến danh sách thư mục:[HỘP THƯ ĐẾN][HỘP THƯ ĐẾN.Bản nháp][HỘP THƯ ĐẾN.Đã gửi][HỘP THƯ ĐẾN.Thùng rác]
++++Lặp lại từng thư mục++++
Từ Thư mục[HỘP THƯ ĐẾN]
Đến Thư mục[HỘP THƯ ĐẾN]
++++Từ[HỘP THƯ ĐẾN]Parse1++++
++++Đến[HỘP THƯ ĐẾN]Parse1++++
++++Đang xác minh[HỘP THƯ ĐẾN]->[HỘP THƯ ĐẾN]++++
+NOmsg#1[FID6mR7 SVC7csdmRce+7PQ:924]inINBOX
+Copyingmsg#1:924tofolderINBOX
flagsfrom:[\Seen]["26-05-200922:00:59+0200"]
Đã sao chépmsgid[1]tofolderINBOXmsgid[7]
+NOmsg#2[4lu3SCjZGH2mRuiP1dY7Mw:1488]inINBOX
+Copyingmsg#2:1488tofolderINBOX
flagsfrom:[()]["27-05-200914:12:59+0200"]
Đã sao chépmsgid[2]tofolderINBOXmsgid[8]
Thời gian:0 giây
TừFo lder[INBOX.Drafts]
ToFolder[INBOX.Drafts]
++++Từ[INBOX.Drafts]Parse1++++
++++Đến[INBOX.Drafts]Parse1++++
++++Đang xác minh[INBOX.Drafts]->[INBOX.Drafts]++++
Thời gian:0 giây
TừFolder[INBOX.Gửi]
ĐếnFolder[INBOX.Gửi]
++++Từ[INBOX.Gửi]Parse1++++
++++Đến[INBOX.Gửi]Parse1++++
++++Đang xác minh[INBOX.Gửi]->[INBOX.Sen t]++++
Thời gian: 0 giây
Từ Thư mục[HỘP THƯ ĐẾN.Thùng rác]
Đến Thư mục[HỘP THƯ ĐẾN.Thùng rác]
++++Từ[HỘP THƯ ĐẾN.Thùng rác]Parse1++++
++++Đến[HỘP THƯ ĐẾN.Thùng rác]Parse1++++
++++Đang xác minh[HỘP THƯ ĐẾN.Thùng rác]++++
Thời gian: 1 giây
++++Thống kê++++
Thời gian: 12 giây
Số tin nhắn đã chuyển: 2
Số tin nhắn đã bỏ qua: 0
Tổng số byte đã chuyển: 2412
Tổng số byte đã bỏ qua: 0
Tổng số byte lỗi: 0
Đã phát hiện 0 lỗi
Vui lòng đánh giá imapsync tại http://freshmeat.net/projects/imapsync/
?Bạn có hài lòng với phần mềm GPL miễn phí, mã nguồn mở và miễn phí này không?
Xin cảm ơn tác giả bằng cách tặng anh ấy cuốn sách:
http://www.amazon.com/gp/registry/wishlist/1C9UNDIH3P7R7/
(tài khoản paypal của orits[emailprotected])
root@server1:~#
Sau đó chúng ta có thể xóa hai tệp mật khẩu:
Mã:
rm -f /etc/secret1
rm -f /etc/secret2
Trên máy chủ đích (server2.example.com), hãy đăng xuất khỏi tài khoản IMAP của bạn và đăng nhập lại (một lần làm mới đơn giản có thể không đủ), và bạn sẽ thấy các thông báo từ server1.example.com:

server2.example.com:


5 Liên kết​

 
Back
Bên trên