muttとGmailとのimapでの連携をofflineimapをつかって便利にする

内容はタイトルの通り。

かなりニッチなのだけど、まとめておく。

従来からの問題としてMuttのimapでの使いがってには課題がある。

imapのServerと常にコネクションが成立していないといけないのだ。

だから、手元のコンピュータにメールを溜めておいて、あとで読むということができない。

そこで解決する方法としてimapによるメールの受信をmutt自体の仕組みではやらずに、offlineimapというソフトを利用する方法があるのでそれをまとめておく。

具体的な手順

1 offlineimapのインストール

大体のunixのパッケージ管理に含まれているので、適当に (hogehoge) install offlineimapとかしてください。

2 muttのインストール

これも無いとはじまらないので、インストールしてください。

いや、この記事を読んでいる時点で、インストールはしてるよね。。。

3 offlineimapの設定

offlineimapは.offlineimaprcというファイルに各種の設定を書くようになっている。

僕の場合の設定は以下のようにしている。

面倒なので、muttのheader_cacheとか、色々なファイルは全てIMAPというフォルダにつっこんでしまっている。アカウトが増えたりすると面倒になるが、それは今回は気にしない。

また、

(複数のサーバINBOXフォルダ問題というのは考慮すべき問題なのだけど、フォルダ構成の設計とか好みもあるから自分で考えてください。ということで)

–ここから–

[general]

metadata = ~/IMAP/offlineimap

accounts = GmailMain

ui = Noninteractive.Basic

[mbnames]

enabled = yes

filename = ~/IMAP/mailboxes

header = “mailboxes “

peritem = =%(foldername)s

sep = “ “

footer = “\n”

maxsyncaccounts = 2

maxconnections = 2

[Account GmailMain]

localrepository = GmailLocal

remoterepository = GmailRemote

[Repository GmailLocal]

type = Maildir

localfolders = ~/IMAP

[Repository GmailRemote]

type = Gmail

remotehost = imap.gmail.com

remoteuser = example@gmail.com

remotepass = exampleexample

ssl = yes

realdelete = no

–ここまで–

4 muttの設定

muttは大体の人がいろいろ設定をしていると思うので、ここではofflineimap関係のところだけ。

基本的にmailが格納されるフォルダofflineimapでスプールするフォルダにすれば良い。

でちょっとした工夫として、muttのfetch-mailコマンドへのキーバインドを書き換えて、offlineimapを呼び出すようにした。

–ここから–

# GMAIL+OFFLINEIMAP settings

set folder=$HOME/IMAP

set spoolfile=+/INBOX

set postponed=“+[Gmail].Drafts”

set record=“+[Gmail].Sent Mail”

# Mailboxes via offlineimap

source $HOME/IMAP/mailboxes

# Send mail

set smtp_url=“smtp://example@gmail.com@smtp.gmail.com:587”

# KeyBind

macro index G “! offlineimap<enter>” “run offlineimap command”

–ここまで–

これで、標準の設定のままだとGmailのINBOXとかが最新1000通くらい受信されるようになる。最新の1000件までしか同期しないのはGmail側の問題らしい。少なくとも僕の環境では再現している。

おすすめの設定上記のままでやると人によっては数万通のメールをいきなり受信するはめに陥ることがある。この場合は、Gmail Labのfolder imapでラベル毎にimapの同期対象にするかどうかを選択できるようになるので、必要なものだけ同期するようにすれば良い。なお、All Mailはoffにしておくことは強くおすすめする。