EH さんの紹介で Gmail のアカウントを手に入れた (EH さん、ありがとう!)。で、Mew 使いの T-Code 使いとしては、当然 Emacs 上で Gmail のメールを見たり書いたりしたいのだけど、この設定にかなり苦戦した。役に立つ事もあると思うので、その記録を残しておく。
やりたい事
Gmail に届いたメールを、POP でゲットして Mew で読みたい。Mew でドラフトを書いて、Gmail の SMTP からメールを発信したい。
環境
- OS: GNU/Linux FedoraCore2
- GNU Emacs 22.0.50 of 2005-03-15 (開発版)
- Mew 4.2.50 (開発版)
常用のコンピューターはファイヤーウォールの中にある。今回は、ssh の port forward を使って対処した。仮に次のような環境にいるとして読んで下さい。
- ssh でトンネルするマシン: foo.bar.ne.jp
メール・アドレスは、スパム対策のため秘密。ここでは nemo@gmail.com とします (注: Gmail では 6 文字以下のメール・アカウントは作れない)。
設定
まず、gmail 側の POP ポート 995 と SMTP ポート 465 を、foo.bar.ne.jp を経由して自分のマシンのポート 10995 と 10465 に ssh で port forward する。port forward は、ログインする度に必要?
$ ssh -f -N -L 10995:pop.gmail.com:995 foo.bar.ne.jp
$ ssh -f -N -L 10465:smtp.gmail.com:465 foo.bar.ne.jp
Mew の設定は .mew.el に次の様に書く。
(setq mew-ssl-verify-level 0)
(setq mew-config-alist
'(;; config alist
("gmail"
("user" . "nemo")
("mail-domain" . "gmail.com")
("pop-user" . "nemo@gmail.com")
("pop-ssl" . t)
("pop-delete" . nil)
("pop-server" . "localhost")
("pop-ssl-port" . "10995")
("smtp-user" . "nemo@gmail.com")
("smtp-ssl" . t)
("smtp-server" . "localhost")
("smtp-ssl-port" . "10465")
)
("default"
("user" . "ataka")
("mail-domain" . "milk.free.mail.ne.jp")
... 以下略 )
))
以上で、設定はお終い。M-x mew でメールの送受信ができるようになるはず。Mew から送ったメールは、Gmail の「送信済みメール」の中に入る。ただし、From フィールドが Gmail 側の設定に上書きされてしまう。今の所、書き換えを抑制する方法はないようだ。
Fedora Core 2 の場合
FC2 を使っていると、stunnel が動いてくれない。この問題は mew-dist ML でも議論されている ([mew-dist 25404] から始まるスレッド)。中村さんの報告によると、原因は Emacs から start-process されたプロセスが signal 1 を受け取って死んでしまう
ことにあるらしい。解決策は、次のような shell script を書いて
#!/bin/sh
/usr/sbin/stunnel $@
~/bin に stunnel という名前で放り込んでおき、Mew からは .mew.el でパスを指定する。
(setq mew-prog-ssl "~/bin/stunnel")
FedoraCore3 でこの問題が fix されているのかどうか知らないが、逃げ道はあるという事だね。あと、mew-ssl-verify-level を 0 以外にした時の設定をしたいのだけど、やり方が分からない。調べはしたけど、無知が災いしてか見当もつかない。設定方法を知ってる方、教えて下さい。