Mac OS X leopardにmutt + fetchmail + procmail + msmtp + Gmailの環境を作る
emacs使いがmew等を使っているのがうらやましく,前からvimでメールも読み書きできたらいいなと思ってました.
なんかないかと探してて見つけたのがmuttです.vim上じゃなくターミナルだけど操作はlessを模していますし,editorをvimに設定すればvimでメールが書けます.
私はGmailを常用しているのでGmailのpopサーバからメールを受信して,Gmailのsmtpサーバへrelayすることをこの記事の目的としています.
Gmailのpopサーバから受信するためには,tls(ssl)が使えるfetchmailを使用し,複数のアカウントを持っているのでメールの振り分けにはprocmailを使いました.muttはメールの送信には外部プログラムを使用するのでなんらかのMTAが必要です.sendmail,postfixやqmailなどがありますが設定が簡単なmsmtpを使いました.
fetchmailのインストールと設定
leopardなら+sslでビルドされたものが最初から入っています(ver6.3.8).
設定は$HOME/.fetchmailrcでおこないます.重要なのは,Gmailのpopサーバが正しいものかチェックすることです.次のコマンドでpopサーバの証明書を入手します.
% openssl s_client -connect smtp.gmail.com:995 -showcerts
"-----BEGIN CERTIFICATE-----"から"-----END CERTIFICATE-----"までの部分をコピーしエディタにはり付け,$HOME/.certs/gmail.pemとして保存します.
また,この証明書が正しいものかどうかを調べるためローカルの保証された証明書も必要です.Macでは/usr/share/curl/curl-ca-bundle.crtから"equifax"の部分を抽出し,$HOME/.cert/equifax.pemとして保存します.そしてc_rehashコマンドを用います(この辺りはよくわかってなく参考サイトの通りです><)
% c_rehash $HOME/.certs/ % openssl s_client -connect pop.gmail.com:995 -CApath .certs/
"+OK Gpop ready for requests〜"と応答があればSSLで通信が可能です.
以下にfetchmailの設定例を載せます.
# 共通の設定 defaults protocol pop3 keep no mimedecode mda "/usr/bin/procmail -d %T" # アカウントごとの設定 poll "pop.gmail.com" user "foo@gmail.com" password "****" ssl sslcertck sslcertpath /Users/foobar/.certs/ is foobar here poll "pop.gmail.com" user "bar@gmail.com" password "****" ssl sslcertck sslcertpath /Users/foobar/.certs/ is bar here
パスワードを書いてるのでファイルパーミッションを600にし他から見られないようにします.
% chmod 600 .fetchmailrc
procmailのインストールと設定
leopardなら最初から導入済みです:)
$HOME/.procmailrcに設定を記述します.procmailは黒魔術(':0'でレシピの開始を表すなんて普通思いつかないや:p)すぎるので私自身全くわかってません.ググればいろいろなレシピがみれます.
以下に私が設定したものを載せます.
メールの量は多くないのでほとんど同じディレクトリにいれてます.メーリングリストのみ振り分けてます.
PATH=$HOME/bin:/usr/bin:/usr/local/bin MAILDIR=$HOME/Maildir/ DEFAULT=$MAILDIR LOGFILE=$MAILDIR/from-log # foo mailing list :0 * ^Subject:.*foo list/foo/ # bar mailing list :0 * ^X-ML-Name: bar list/bar/ # foobar mailing list :0 * ^Subject:.*foobar list/foobar/
msmtpのインストールと設定
Macportsを使えばすんなり入ってくれます.
sudo port install msmtp
popサーバと同様認証を行う必要があります.SSL Degital Certificate Technical Support - thawteから証明書を取得できます.
解凍してthawte-roots/Thawte Server Roots/ThawtePremiumServerCA_b64.txtをコピーして$HOME/.certs/ThawtePremiumServerCA.crtに保存します.msmtpの設定は$HOME/.msmtpに記述します.
以下に私の設定ファイルを示します.
account default host smtp.gmail.com port 587 user foo@gmail.com password **** from foo@gmail.com tls on tls_starttls on tls_trust_file /Users/foo/.certs/ThawtePremiumServerCA.crt auth on logfile ~/.msmtp.log
またfetchmailと同様にファイルパーミッションを600に変更します.
muttのインストールと設定
これが一番手こずりました.
何を血迷ったのかソースからインストールしようと思い,1時間ほど試行錯誤を繰り返してもできず.結局Macportsなら一発で入りました.野良ビルドせずMacportsを使った方が幸せになれそうです.
sudo port install mutt
variantsに何も付けなくてもちゃんと日本語環境を作ってくれます.
muttの設定ファイルは$HOME/.muttrcがデフォルトですが.mutt/というディレクトリを作りその中にmuttrcを作ってそれを設定ファイルとした方が良いらしいです.メールアドレスの別名を保存するaliasファイルなど別名のファイルを呼び出したりすることができるからだそうです.
muttrcの設定項目は大量にあるのでマニュアルやLinux Japanで掲載されていた記事を参照してお好みの物を設定するといいと思います.
Macで使う上で必須なのは文字コードの設定で,
set charset="utf-8" set send_charset="utf-8"
の2つを設定するとutf8で読み書きでき,文字化けせずにすみます.
以下に私のmuttrcを載せます.
# 名前, アドレス set realname="foo bar" set from="foo@gmail.com" # メールエディタ指定 set editor="vim %s" # ヘッダの編集を可能にする set edit_headers=yes # 転送時のSubjectの形式を設定する set forw_format="Fwd: %s" # シグネチャ set signature=~/.mutt/.signature # メールボックス set spoolfile="$HOME/Maildir/" set folder="$HOME/Maildir/" #'+'が$folderのエイリアス set mbox="+inbox" # '>'が$mboxのエイリアス set record="+sent" # '<'が$recordのエイリアス set postponed="+postponed" set mbox_type=Maildir # インデックスとページャ画面の設定 set pager_index_lines=10 set tilde=yes # 送信用プログラム set sendmail="/opt/local/bin/msmtp" # muttを抜けるときにメッセージを表示させない set nomove # 日本語表示/送信(utf8) set charset="utf-8" set send_charset="utf-8" # 未読のOldフラグを無しにする set mark_old=no # Shift-gでfetchmailを呼び出す macro index G !fetchmail\n # カラーシンタックス # pager color header yellow black ^(From|Subject) color quoted cyan black color signature red black color attachment blue black color body magenta black "(ftp|http)://[^ ]+" # point out URLs color body magenta black [-a-z_0-9.]+@[-a-z_0-9.]+ # e-mail addresses color search black yellow # how to hilite search patterns in the pager # index screen color index white black .* color tree cyan black # the thread tree in the index menu color indicator black brightcyan
muttの起動と終了
ターミナルで'mutt'とタイプすればmuttが起動します.そこで'G'をタイプするとfetchmailを呼び出しpopサーバからメールを取ってきます.操作方法はlessと一緒なのでどうすればいいのか直感的にわかると思います.
'j/k'で移動し,'
これでmuttで快適なメール環境が作れました.
素敵です.
参考文献
ほとんど参考文献からコピペさせていただきました.
- Using Mutt with Gmail この記事はこのサイトをそのまま写しただけです>
- The Mutt E-Mail Client muttマニュアルの日本語訳です.macroやhookが備わっているのでいろいろできそうです.
- Linux Japan 誌掲載記事 Linux Japanで掲載されていたmuttの解説記事がpdfで全て読めます.
- mutt + fetchmail + procmailを使う muttrcはこの方のを参考にさせていただきました.