offlineimap その1

IMAPメールボックスの同期をとるツールとして offlineimap というのがあります。こ れはリモートのIMAPメールボックスの中身をローカルマシンに Maildir 形式 で同期をとってくれるというもので、同期したローカルの Maildir に加えた 変更は再度 offlineimap を実行すれば、リモートにのメールボックスにも反映することもできます。

offlineimap を使えばメールデータのバックアップもできるし、 さらに notmuch を使えば超高速でメール検索もでき るようになります。

メジャーなディストロにはパッケージリポジトリに入っていると思います。今回は CentOS に入れました。

$ sudo yum install offlineimap

~/.offlineimaprc に設定を記述していきます。以下は同期を定期実効する場合の設定です。

[general]
accounts = MyAccount

[Account MyAccount]
localrepository = Local
remoterepository = Remote
autorefresh = 10
quick = 10

[Repository Local]
type = Maildir
localfolders = ~/Maildir

[Repository Remote]
type = IMAP
ssl = yes
cert_fingerprint = abcdef...
remotehost = mail.example.com
remoteuser = yourname@exmaple.com
folderfilter = lambda foldername: not re.search('(^Trash$|Del)', foldername)
keepalive = 60
holdconnectionopen = yes

SSL接続する場合は cert_fingerprint の設定が必要です。これは openssl コマンドで取得できます。

$ openssl s_client -no_ssl3 -connect mail.example.com:993 < /dev/null 2>&1 | sed -n '/-----BEGIN/,/-----END/p' > cert.pem
$ openssl x509 -sha1 -fingerprint -noout -in cert.pem
SHA1 Fingerprint=AB:CD:EF:...

パスワードは ~/.netrc に記述します。

machine mail.example.com
  login yourname@example.com
  password super-secret-password

パーミッションは 600 にしておきます。

$ chmod 600 .netrc

以上で設定はおわりです。シェルから offlineimap を実行すると同期が始ま ります。メールボックスのサイズ、メールサーバの性能、ローカルマシンの性 能もろもろにもよりますが、筆者の環境では17万通19GBのメールボックス の同期に半日程度かかりました。

次回は notmuch の設定やります。

social