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 --help

4 移行の実行

移行したいメールアカウントのユーザー名とパスワードを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 リンク

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。