皆さま、
さて、
近年のモバイルネットワークの普及によって、
今回は
OfflineImapでメールサーバと同期を取る
OfflineImapは、
OfflineImapの導入
それでは実際に試してみましょう。OfflineImapはUbuntuではuniverseに収録されているソフトウェアですのでお好きな方法でインストールしてください。
以下ではapt-getでインストールしてみます。
$ sudo apt-get install offlineimap
OfflineImapをインストールすると/usr/
OfflineImapの設定
続いて、
OfflineImapの設定ファイルは~/.offlineimaprcです。とりあえず次の内容を記述してください。
[general]
metadata = ~/.offlineimap
accounts = Gmail
[Account Gmail]
localrepository = localGmail
remoterepository = remoteGmail
[Repository localGmail]
type = Maildir
localfolders = ~/Maildir/
[Repository remoteGmail]
type = Gmail
remoteuser = 'Gmail のアドレス'
folderfilter = lambda foldername: foldername in ['INBOX']
これにより、
- [general]で、
アカウント 「Gmail」 の同期 - [Account Gmail]で、
ローカル/リモートの情報にそれぞれlocalGmail/ remoteGmailという名前をつける - [Repository localGmail]で、
ローカルの保存先と保存形式の設定 - [Repository remoteGmail]で、
リモートサーバの形式、 ユーザ名、 同期するメールボックスの設定
上記設定例を~/.offlineimaprcに記述した後に、
$ offlineimap OfflineIMAP 6.3.4 Copyright 2002-2011 John Goerzen & contributors. Licensed under the GNU GPL v2+ (v2 or any later version). Account sync Gmail: ***** Processing account Gmail Copying folder structure from Gmail to Maildir Establishing connection to imap.gmail.com:993. remoteGmail: Enter password:
パスワードが聞かれますのでGmailのパスワードを入力してください。正しく認証できるとメールの同期が始まります。
毎回パスワードを入力するのが面倒な場合には、
[Repository remoteGmail]
type = Gmail
remoteuser = 'Gmailのアドレス'
remotepass = 'Gmailのパスワード'
folderfilter = lambda foldername: foldername in ['INBOX']
フォルダの指定をどうするか?
すこし面倒なのはフォルダ名の指定かもしれません。最初の設定例での
folderfilter = lambda foldername: foldername in ['INBOX']
は、
他にも同期したいフォルダがある場合には、
folderfilter = lambda foldername: foldername not in ['[Gmail]/&MFkweTBmMG4w4TD8MOs-']
この暗号の様な文字列[Gmail]/&MFkweTBmMG4w4TD8MOs-
が曲者かもしれません。
IMAPではフォルダ名に修正UTF-7というコーディングを使っています。上記の例にある&MFkweTBmMG4w4TD8MOs-
は、
'[Gmail]/&MLkwvzD8TtgwTQ-' # スター付き
'[Gmail]/&MLQw33ux-' # ゴミ箱
'[Gmail]/&kAFP4W4IMH8w4TD8MOs-' # 送信済み
'[Gmail]/&Tgtm+DBN-' # 下書き
'[Gmail]/&MFkweTBmMG4w4TD8MOs-' # すべてのメール
日本語フォルダ名の修正UTF-7での表現は、
echo "スター付き" | iconv -t UTF-7 +MLkwvzD8TtgwTQ
先頭の"+"を"&"にして末尾に"-"をつけることで、
Maildir形式の
OfflineImapには他にも高速化のための設定や、
Dovecot
さて、
MuttやWanderlustといったMUAはMaildir形式のディレクトリを直接扱うことができます。しかしながら、
そう、
Dovecotの導入
DovecotはIMAPサーバだけではなくPOPサーバとしても動作します。また、
DovecotはUbuntuではmainに収録されているソフトウェアですので、
sudo apt-get install dovecot-imapd
設定が終わると手元でdovecotが起動します。
dovecot-imapdの設定
OfflineImapで同期したMaildirをdovecot-imapd経由で扱うために、
先ずはMaildirの場所を指定します。/etc/
...
mail_location = maildir:%h/Maildir:INBOX=%h/Maildir/INBOX:LAYOUT=fs
...
次に接続先です。/etc/
ここではIMAP接続
...
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
# port = 993
# ssl = yes
}
...
最後に、
...
listen = 127.0.1.1, ::1
...
以上が終わったらdovecotを再起動します。
sudo service dovecot restart
以上で設定は終了です。お使いのMUAで、
- 接続先:localhost
- ポート番号:143
- SSL接続:無し
ユーザ名とパスワードは手元のUbuntuにログインする際のユーザ名とパスワードです。
...いかがでしょう? OfflineImapで同期したメールが見えましたか? 見えたならメールの
まとめ
これでOfflineImap+Dovecotによるメール環境は完成しました。あとはOfflineImapをCRONなどで定期的に実行することで、
以上、