BLOGTIMES
2015/04/17

imapsync で IMAP のフォルダ同期を設定する

 
このエントリーをはてなブックマークに追加

imapsyncを使うと 2つのサーバの IMAP のフォルダを同期することができることが分かったので、導入方法をメモ。

RHEL や CentOS の場合は epel から yum で導入できます。

yum install imapsync -y

起動はコマンドラインから、2つのサーバの情報を与えてやります。

imapsync \ --host1 imap.gmail.com --port1 993 --ssl1 --authmech1 LOGIN --user1 username1 --password1 pass1 \ --host2 imap.gmail.com --port2 993 --ssl2 --authmech2 LOGIN --user2 username1 --password2 pass2 \ --dry

最後の --dry は dryrun (ログ出力のみで実際には同期しない)の設定なので、テストが終わったら外す必要があります。また、--folder (フォルダ名) オプションをつければ同期するフォルダを指定することができますが、ハマりやすいのはフォルダ名を Modified UTF-7 でエンコードする必要があることでしょうか。IMAP で日本語のフォルダ名をつけるとサーバ側でなにやら文字化けしているように見えていましたが、これは Modified UTF-7 というれっきとした規格だったんですね。

例えば ruby を使うと Net::IMAP に decode_utf7() / encode_utf7() があるのでこれが使えます。

$ ruby -r net/imap -e 'puts Net::IMAP.decode_utf7("[Gmail]/&MFkweTBmMG4w4TD8MOs-")' [Gmail]/すべてのメール $ ruby -r net/imap -e 'puts Net::IMAP.encode_utf7("[Gmail]/すべてのメール")' [Gmail]/&MFkweTBmMG4w4TD8MOs-

    トラックバックについて
    Trackback URL:
    お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
    このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/7547
    Trackbacks
    このエントリにトラックバックはありません
    Comments
    愛のあるツッコミをお気軽にどうぞ。[policy]
    古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
    コメントはありません
    Comments Form

    コメントは承認後の表示となります。
    OpenIDでログインすると、即時に公開されます。

    OpenID を使ってログインすることができます。

    Identity URL: Yahoo! JAPAN IDでログイン