메일 마이그레이션 · 4 min read · Sep 25, 2025
IMAP 서버 간 메일박스 마이그레이션 방법 imapsync 사용하기

이 가이드는 imapsync를 사용하여 IMAP 서버 간에 메일박스를 마이그레이션하는 방법을 설명합니다. imapsync는 IMAP 동기화, 복사 또는 마이그레이션 도구입니다. 32개 이상의 다양한 IMAP 서버 소프트웨어가 성공적으로 지원됩니다. 모든 플래그가 유지되며, 읽지 않은 메일은 읽지 않은 상태로, 읽은 메일은 읽은 상태로, 삭제된 메일은 삭제된 상태로 유지됩니다.
1 사전 참고
여기서는 두 개의 Debian 또는 Ubuntu 서버를 사용하고 있습니다(다른 배포판에서도 절차는 동일하지만 imapsync 설치는 다를 수 있습니다):
- server1.example.com (소스)
- server2.example.com (대상)
서버 server1.example.com의 메일박스 [email protected] (사용자 이름: [email protected], 비밀번호: secret)를 server2.example.com의 메일박스 [email protected]로 마이그레이션하고자 합니다(사용자 이름과 비밀번호는 server1.example.com과 동일합니다).
2 시작하기 전에
시작하기 전에 두 메일박스를 살펴보아 어떤 내용이 있는지 확인해 봅시다(Outlook, Thunderbird와 같은 이메일 클라이언트나 SquirrelMail과 같은 웹 기반 이메일 클라이언트를 사용하여 확인할 수 있습니다 - 여기서는 SquirrelMail을 사용하고 있습니다).
server1.example.com:

server2.example.com:

마이그레이션 후 server1.example.com의 두 메시지는 server2.example.com에서 사용할 수 있어야 합니다.
3 imapsync 설치
imapsync를 server1.example.com 또는 server2.example.com에 설치하든 상관없습니다 - 제3의 관련 없는 서버에 설치할 수도 있습니다.
aptitude install imapsync사용법에 대해 알아보려면 다음을 참조하세요:
man imapsync및
imapsync --help4 마이그레이션 수행하기
imapsync에 마이그레이션할 메일 계정의 사용자 이름과 비밀번호를 알려야 합니다. 이론적으로 비밀번호에 대해 –password1 및 –password2 스위치를 사용할 수 있지만, 이는 위험합니다. 왜냐하면 비밀번호가 다음의 출력에 나타나기 때문입니다:
ps aux(따라서 해당 명령을 실행할 수 있는 모든 사용자가 비밀번호를 알게 됩니다.)
따라서 비밀번호를 포함하는 두 개의 파일(이 예제에서는 /etc/secret1 및 /etc/secret2)을 생성하고, 이 파일들에 대해 chmod 600을 수행한 후 –passfile1 및 –passfile2 스위치를 사용하는 것이 좋습니다.
echo "secret" > /etc/secret1
echo "secret" > /etc/secret2
chmod 600 /etc/secret1
chmod 600 /etc/secret2이제 이 간단한 명령으로 마이그레이션을 수행할 수 있습니다:
imapsync --host1 server1.example.com --user1 [email protected] --passfile1 /etc/secret2 --host2 server2.example.com --user2 [email protected] --passfile2 /etc/secret2샘플 출력은 다음과 같습니다:
root@server1:~# imapsync --host1 server1.example.com --user1 [email protected] --passfile1 /etc/secret2
--host2 server2.example.com --user2 [email protected] --passfile2 /etc/secret2
$RCSfile: imapsync,v $ $Revision: 1.252 $ $Date: 2008/05/08 02:30:17 $
Here is a [linux] system (Linux server1.example.com 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:45:36 UTC 2009 x86_64)
with perl 5.10.0 and the module Mail::IMAPClient version used here is 2.2.9
Command line used :
/usr/bin/imapsync --host1 server1.example.com --user1 [email protected] --passfile1 /etc/secret2
--host2 server2.example.com --user2 [email protected] --passfile2 /etc/secret2
Turned ON syncinternaldates, will set the internal dates on host2 same as host1.
TimeZone :[CEST]
Will try to use CRAM-MD5 authentication on host1
Will try to use CRAM-MD5 authentication on host2
From imap server [server1.example.com] port [143] user [[email protected]]
To imap server [server2.example.com] port [143] user [[email protected]]
Banner : * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA
IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information.
Host server1.example.com says it has NO CAPABILITY for AUTHENTICATE CRAM-MD5
Error login : [server1.example.com] with user [[email protected]] auth [CRAM-MD5]: 3 NO Login failed.
Trying LOGIN Auth mechanism on [server1.example.com] with user [[email protected]]
Success login on [server1.example.com] with user [[email protected]] auth [CRAM-MD5]
Banner : * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA
IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP ready. Copyright 1998-2008 Double Precision, Inc. See COPYING for distribution information.
Host server2.example.com says it has NO CAPABILITY for AUTHENTICATE CRAM-MD5
Error login : [server2.example.com] with user [[email protected]] auth [CRAM-MD5]: 3 NO Login failed.
Trying LOGIN Auth mechanism on [server2.example.com] with user [[email protected]]
Success login on [server2.example.com] with user [[email protected]] auth [CRAM-MD5]
From capability : QUOTA STARTTLS NAMESPACE IDLE THREAD=ORDEREDSUBJECT ACL SORT UIDPLUS CHILDREN ACL2=UNION IMAP4REV1 THREAD=REFERENCES
To capability : QUOTA STARTTLS NAMESPACE IDLE THREAD=ORDEREDSUBJECT ACL SORT UIDPLUS CHILDREN ACL2=UNION IMAP4REV1 THREAD=REFERENCES
From state Authenticated
To state Authenticated
From separator and prefix : [.][INBOX.]
To separator and prefix : [.][INBOX.]
++++ Calculating sizes ++++
From Folder [INBOX] Size: 2412 Messages: 2
From Folder [INBOX.Drafts] Size: 0 Messages: 0
From Folder [INBOX.Sent] Size: 0 Messages: 0
From Folder [INBOX.Trash] Size: 0 Messages: 0
Total size: 2412
Total messages: 2
Time : 11 s
++++ Calculating sizes ++++
To Folder [INBOX] Size: 16844 Messages: 6
To Folder [INBOX.Drafts] Size: 0 Messages: 0
To Folder [INBOX.Sent] Size: 0 Messages: 0
To Folder [INBOX.Trash] Size: 0 Messages: 0
Total size: 16844
Total messages: 6
Time : 0 s
++++ Listing folders ++++
From folders list : [INBOX] [INBOX.Drafts] [INBOX.Sent] [INBOX.Trash]
To folders list : [INBOX] [INBOX.Drafts] [INBOX.Sent] [INBOX.Trash]
++++ Looping on each folder ++++
From Folder [INBOX]
To Folder [INBOX]
++++ From [INBOX] Parse 1 ++++
++++ To [INBOX] Parse 1 ++++
++++ Verifying [INBOX] -> [INBOX] ++++
+ NO msg #1 [FID6mR7SVC7csdmRce+7PQ:924] in INBOX
+ Copying msg #1:924 to folder INBOX
flags from : [\Seen]["26-May-2009 22:00:59 +0200"]
Copied msg id [1] to folder INBOX msg id [7]
+ NO msg #2 [4lu3SCjZGH2mRuiP1dY7Mw:1488] in INBOX
+ Copying msg #2:1488 to folder INBOX
flags from : [()]["27-May-2009 14:12:59 +0200"]
Copied msg id [2] to folder INBOX msg id [8]
Time : 0 s
From Folder [INBOX.Drafts]
To Folder [INBOX.Drafts]
++++ From [INBOX.Drafts] Parse 1 ++++
++++ To [INBOX.Drafts] Parse 1 ++++
++++ Verifying [INBOX.Drafts] -> [INBOX.Drafts] ++++
Time : 0 s
From Folder [INBOX.Sent]
To Folder [INBOX.Sent]
++++ From [INBOX.Sent] Parse 1 ++++
++++ To [INBOX.Sent] Parse 1 ++++
++++ Verifying [INBOX.Sent] -> [INBOX.Sent] ++++
Time : 0 s
From Folder [INBOX.Trash]
To Folder [INBOX.Trash]
++++ From [INBOX.Trash] Parse 1 ++++
++++ To [INBOX.Trash] Parse 1 ++++
++++ Verifying [INBOX.Trash] -> [INBOX.Trash] ++++
Time : 1 s
++++ 통계 ++++
시간 : 12 초
전송된 메시지 수 : 2
건너뛴 메시지 수 : 0
전송된 총 바이트 수 : 2412
건너뛴 총 바이트 수 : 0
오류 총 바이트 수 : 0
0개의 오류가 감지되었습니다
imapsync를 평가해 주세요 http://freshmeat.net/projects/imapsync/
? 이 무료, 오픈 소스 및 무료 GPL 소프트웨어에 만족하십니까?
저자에게 책으로 감사할 수 있습니다:
http://www.amazon.com/gp/registry/wishlist/1C9UNDIH3P7R7/
(또는 그의 페이팔 계좌 [email protected])
root@server1:~#그 후 두 비밀번호 파일을 삭제할 수 있습니다:
rm -f /etc/secret1
rm -f /etc/secret2대상 서버(server2.example.com)에서 IMAP 계정에서 로그아웃한 후 다시 로그인합니다(간단한 새로 고침으로는 충분하지 않을 수 있습니다), 그러면 server1.example.com의 메시지를 볼 수 있어야 합니다:
server2.example.com:

5 링크
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.