IMAP移行 · 2 min read · Sep 25, 2025
IMAPサーバー間でのメールボックスの移行方法 - imapsyncを使用して

このガイドでは、imapsyncを使用してIMAPサーバー間でメールボックスを移行する方法を説明します。imapsyncはIMAPの同期、コピー、または移行ツールです。32種類以上の異なるIMAPサーバーソフトウェアが成功裏にサポートされています。すべてのフラグが保持され、未読は未読のまま、既読は既読のまま、削除されたものは削除されたままになります。
1 前提条件
ここでは、2つの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のようなWebベースのメールクライアントを使用してこれを行うことができます - ここではSquirrelMailを使用しています)。
server1.example.com:

server2.example.com:

移行後、server1.example.comの2つのメッセージはserver2.example.comで利用可能であるべきです。
3 imapsyncのインストール
imapsyncをserver1.example.comまたはserver2.example.comにインストールしても問題ありません - 第三の関与しないサーバーにインストールすることもできます。
aptitude install imapsyncその使用法については、次を参照してください。
man imapsyncおよび
imapsync --help4 移行の実行
移行したいメールアカウントのユーザー名とパスワードをimapsyncに伝える必要があります。理論的には、パスワードには–password1および–password2スイッチを使用できますが、これは危険です。なぜなら、パスワードが次の出力に表示されるからです。
ps aux(このコマンドを実行できるユーザーは、パスワードを知ることになります。)
したがって、パスワードを含む2つのファイル(この例では/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 $
ここにあるのは [linux] システム (Linux server1.example.com 2.6.28-11-server #42-Ubuntu SMP Fri Apr 17 02:45:36 UTC 2009 x86_64)
perl 5.10.0 とここで使用されているモジュール Mail::IMAPClient のバージョンは 2.2.9 です
使用されたコマンドライン :
/usr/bin/imapsync --host1 server1.example.com --user1 [email protected] --passfile1 /etc/secret2
--host2 server2.example.com --user2 [email protected] --passfile2 /etc/secret2
syncinternaldatesがONになりました。host2の内部日付はhost1と同じになります。
タイムゾーン :[CEST]
host1でCRAM-MD5認証を使用しようとしています
host2でCRAM-MD5認証を使用しようとしています
imapサーバー [server1.example.com] ポート [143] ユーザー [[email protected]]
imapサーバー [server2.example.com] ポート [143] ユーザー [[email protected]]
バナー : * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA
IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP 準備完了。著作権 1998-2008 Double Precision, Inc. 配布情報についてはCOPYINGを参照してください。
サーバーserver1.example.comはAUTHENTICATE CRAM-MD5のCAPABILITYがありません
エラーログイン : [server1.example.com] ユーザー [[email protected]] auth [CRAM-MD5]: 3 NO ログイン失敗。
[server1.example.com]でユーザー[[email protected]]とLOGIN認証メカニズムを試行中
[server1.example.com]でユーザー[[email protected]]とログイン成功 auth [CRAM-MD5]
バナー : * OK [CAPABILITY IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA
IDLE ACL ACL2=UNION STARTTLS] Courier-IMAP 準備完了。著作権 1998-2008 Double Precision, Inc. 配布情報についてはCOPYINGを参照してください。
サーバーserver2.example.comはAUTHENTICATE CRAM-MD5のCAPABILITYがありません
エラーログイン : [server2.example.com] ユーザー [[email protected]] auth [CRAM-MD5]: 3 NO ログイン失敗。
[server2.example.com]でユーザー[[email protected]]とLOGIN認証メカニズムを試行中
[server2.example.com]でユーザー[[email protected]]とログイン成功 auth [CRAM-MD5]
fromの能力 : QUOTA STARTTLS NAMESPACE IDLE THREAD=ORDEREDSUBJECT ACL SORT UIDPLUS CHILDREN ACL2=UNION IMAP4REV1 THREAD=REFERENCES
toの能力 : QUOTA STARTTLS NAMESPACE IDLE THREAD=ORDEREDSUBJECT ACL SORT UIDPLUS CHILDREN ACL2=UNION IMAP4REV1 THREAD=REFERENCES
fromの状態 認証済み
toの状態 認証済み
fromのセパレーターとプレフィックス : [.][INBOX.]
toのセパレーターとプレフィックス : [.][INBOX.]
++++ サイズを計算中 ++++
fromフォルダー [INBOX] サイズ: 2412 メッセージ: 2
fromフォルダー [INBOX.Drafts] サイズ: 0 メッセージ: 0
fromフォルダー [INBOX.Sent] サイズ: 0 メッセージ: 0
fromフォルダー [INBOX.Trash] サイズ: 0 メッセージ: 0
合計サイズ: 2412
合計メッセージ: 2
時間 : 11 s
++++ サイズを計算中 ++++
toフォルダー [INBOX] サイズ: 16844 メッセージ: 6
toフォルダー [INBOX.Drafts] サイズ: 0 メッセージ: 0
toフォルダー [INBOX.Sent] サイズ: 0 メッセージ: 0
toフォルダー [INBOX.Trash] サイズ: 0 メッセージ: 0
合計サイズ: 16844
合計メッセージ: 6
時間 : 0 s
++++ フォルダーをリスト中 ++++
fromフォルダーリスト : [INBOX] [INBOX.Drafts] [INBOX.Sent] [INBOX.Trash]
toフォルダーリスト : [INBOX] [INBOX.Drafts] [INBOX.Sent] [INBOX.Trash]
++++ 各フォルダーをループ中 ++++
fromフォルダー [INBOX]
toフォルダー [INBOX]
++++ [INBOX]の解析1 ++++
++++ [INBOX]の解析1 ++++
++++ [INBOX] -> [INBOX]の確認 ++++
+ NO msg #1 [FID6mR7SVC7csdmRce+7PQ:924] in INBOX
+ msg #1:924をフォルダーINBOXにコピー中
フラグから : [\Seen]["26-May-2009 22:00:59 +0200"]
msg id [1]をフォルダーINBOXにコピーしました msg id [7]
+ NO msg #2 [4lu3SCjZGH2mRuiP1dY7Mw:1488] in INBOX
+ msg #2:1488をフォルダーINBOXにコピー中
フラグから : [()]["27-May-2009 14:12:59 +0200"]
msg id [2]をフォルダーINBOXにコピーしました msg id [8]
時間 : 0 s
fromフォルダー [INBOX.Drafts]
toフォルダー [INBOX.Drafts]
++++ [INBOX.Drafts]の解析1 ++++
++++ [INBOX.Drafts]の解析1 ++++
++++ [INBOX.Drafts] -> [INBOX.Drafts]の確認 ++++
時間 : 0 s
fromフォルダー [INBOX.Sent]
toフォルダー [INBOX.Sent]
++++ [INBOX.Sent]の解析1 ++++
++++ [INBOX.Sent]の解析1 ++++
++++ [INBOX.Sent] -> [INBOX.Sent]の確認 ++++
時間 : 0 s
fromフォルダー [INBOX.Trash]
toフォルダー [INBOX.Trash]
++++ [INBOX.Trash]の解析1 ++++
++++ [INBOX.Trash]の解析1 ++++
++++ [INBOX.Trash] -> [INBOX.Trash]の確認 ++++
時間 : 1 s
++++ 統計 ++++
時間 : 12 sec
転送されたメッセージ : 2
スキップされたメッセージ : 0
転送された合計バイト数: 2412
スキップされた合計バイト数 : 0
エラーの合計バイト数 : 0
エラーは0件検出されました
imapsyncを評価してください http://freshmeat.net/projects/imapsync/
?この無料のオープンソースGPLソフトウェアに満足していますか?
著者に感謝の気持ちを伝えるために本を贈っても構いません:
http://www.amazon.com/gp/registry/wishlist/1C9UNDIH3P7R7/
(または彼のpaypalアカウント[email protected])
root@server1:~#その後、2つのパスワードファイルを削除できます:
rm -f /etc/secret1
rm -f /etc/secret2ターゲットサーバー(server2.example.com)でIMAPアカウントからログアウトし、再度ログインします(単純なリフレッシュでは不十分な場合があります)、そしてserver1.example.comからのメッセージが表示されるはずです:
server2.example.com:

5 リンク
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。