Vimでメールを読む

前回のTokyoVim#19unite-notmuchというプラグインを作りました。
このプラグインnotmuchというコンソール上で動作するメールリーダーを使い、
Uniteのインターフェースから

  • メールの表示
  • メールの検索
  • メールの未読/既読の切替

をすることができます。


なお、

  • メールの受信
  • メールの送信

はそもそもnotmuch本体が出来ないのでこのプラグインでも出来ません。

また、notmuchがWindowsでは使えないようなのでこのプラグインも使えません。

必要なソフト

メール環境の設定(offlineimap編)

  1. notmuchのインストール
# Mac OS X
$ brew install notmuch

# Linux(gentoo)
$ sudo emerge notmuch
  1. notmuchの設定
$ vim ~/.notmuch-config
[database]
# 絶対パスで指定する
path=/Users/ユーザ名/Maildir
#path=/home/ユーザ名/Maildir

[user]
name=アカウント名
primary_email=メールアドレス

[new]
tags=unread;inbox;
ignore=

[search]
exclude_tags=deleted;spam;

[maildir]
synchronize_flags=true
  1. offlineimapのインストール
# Mac OS X
$ brew install offlineimap

# Linux(gentoo)
$ sudo emerge offlineimap
  1. offlineimapの設定
$ vim ~/.offlineimaprc
[general]
metadata = ~/.offlineimap
accounts = アカウント設定名

[Account アカウント設定名]
localrepository = ローカル設定名
remoterepository = リモート設定名
status_backend = sqlite
postsynchook = notmuch new

[Repository ローカル設定名]
type = Maildir
# notmuch-configのdatabaseで指定したパス
localfolders = ~/Maildir/

[Repository リモート設定名]
type = IMAP
remotehost = メールサーバ
remoteuser = アカウント名
remotepass = パスワード
maxconnections = 1

folderfilter = lambda foldername: foldername in ['INBOX']

使い方(offlineimap編)

事前に

$ offlineimap

でメールを受信しておく必要があります。
いちいちコマンドを実行するのが面倒ならcronにでも仕込んでおけば良いらしいです。

メールを受信したらVimから以下のコマンドを実行します。

:Unite notmuch

フォルダ一覧画面では以下のアクションが実行可能です。

  • フォルダを開く(open)
  • フォルダ内のメールを既読にする(read)
  • フォルダ内のメールを未読にする(unread) => TokyoVim#20で追加
  • フォルダ内のメールを検索する(search) => TokyoVim#20で追加


フォルダを開いた後のメール一覧画面では以下のアクションが実行可能です。

  • メールを開く(open)
  • 選択したメールを既読にする(read)
  • 選択したメールを未読にする(unread) => TokyoVim#20で追加
  • メールをプレビューウィンドウで開く(preview) => TokyoVim#20で追加

興味がある人は使ってみてください。