mewでgmailする
今迄、自分でpostfixでメールサーバ運営してきたけど、面倒臭くなったんで、 gmailをやってみることにした。でも、コーディング中にブラウザでメールを読み書きするのはリズムが崩れる。やはりメールもemacsでしたい。検索してみるとmewでgmailやっている人は沢山いるみたいなんで無難なオプションのようだ。
それまで使っていたmew-6.1でgmail+popの設定ファイルを作ってみた。しかし、gmail上のinboxを見にいくと、ステータスが
「Creating an SSL/TLS connection...」
でブロックしてしまう。 stunnelを通してpop.gmail.comにログインしようとしたところでブロックしてしまうんだろうか?
newstatでコネクションを探してもない。psしてもstunnelがない。どうやら死んでしまっているようだ。mewも子プロセスが死んだんならちゃんとそれに気付いて報告してくれたらいいのに、、
どうやらmew-ssl.elの mew-open-ssl-streamのこのステートメントで死んだの
に気付かづ待っているようだ
(mew-rendezvous (null (mew-ssl-get-statuspnm)))
この定義を見るとpollingするマクロみたいだ。でも、あまり深追いしたくない。
最新のmew-6.2のリリースにアップグレードしたら、エラーメッセージが変った。ローカルホストの動的なポートにコネクトできないとういうものだ。この TCPアドレスは多分、stunnelの内側のサーバアドレスに違いない。やはり、stunnelがコケているようだ。
とりあえず死因をみつけて回避したい。stunnelをラップするシェルスクリプトを作って、引数をキャプチャーしたらこんなのだった:
頭にstunnelをつけて走らすと
....
Pid file (none) must be full path name
としかられる。man stunnelには-Pの値はパスか''でなくてはいけないようだ。
- P none
この「none」ってのがいかんらしい。これを/tmp/stunnel.pidとかしてやるととりあえず動く。
そこで、問題の引数をラッパースクリプトで書換えてやると、、、
動いた! mewはgmailのパスワードを聞いてきた。
================ ~/bin/stunnel-wrapper
#!/bin/sh
echo $* > /tmp/stunnel-args
/usr/bin/stunnel `echo $* | sed 's|none|/tmp/stunnel.pid|'`
================
~/.mew.el からこのラッパーを指定
(setq mew-prog-ssl "/home/tengu/bin/stunnel-wrapper")
mewのリリースでこのような標準的な使い方で発生するバグがあるのには驚いだ。もしかして、自分の環境が変っているのだろうか? まあ、とりあえず動くからいいや。