Wanderlust on NTEmacsからIMAPでGmailにアクセスした場合…

Posted at Thu, 08 Nov 2007 15:18:32 +0900 (JST)

長いタイトルだが、あまりにこれに手間取ったので。

私は自宅鯖で運用中の、自分のドメインでのE-mail送受信では、MUA間との通信にSTARTTLSによる暗号化を施している。よって、Wanderlustにも当該の設定と、STARTTLSに必要な実行ファイル(starttls.exe)をcygwinでコンパイルし、この実行ファイルで最低限必要なDLLと一緒にディレクトリに放り込んでいるが、自宅鯖とのSTARTTLSによる暗号化通信にはまったく問題がなかった。これは、鯖のログと、実際にパケットをキャプチャしたものの双方で確認している。ちなみに自宅鯖では、Postfix(SMTP)とDovecot(IMAP)がGNU/Debian Etch上で稼働している。

掲題の件について、大概の方はこの記述で満足するはずで、私もこの記述には大いに助かったが、なぜかNTEmacsでSTARTTLSとSSLの双方を使用する環境では、IMAPでGmailへのアクセス可能の設定を入れると、SMTPでは“No Authentication mechanism available.”と表示されて送信できないのだ。

…で、方々を当たったところ、SSLによるSMTPでは dot.wl に、

(setq smtp-open-connection-function #’open-ssl-stream)

を追加しなければならないことが判り、実際に dot.wl にこの行を追加して送信試験すると、確かにGmailのSMTPサーバ経由で送信できる。

「やれやれ、これで問題なしか…」と、今度は自宅鯖にある自分のドメインでIMAPによる同期をさせようとすると、見事にNTEmacsごとハングアップしていまい、返って来ない。

つまり、まことに不思議としか言いようがないものの、STARTTLSとSSLが併用できないのだ。どうやらそういうものらしい。

已むを得ず、PCにはstunnelを別途入れることで対応した。わざわざGmailの送信のためだけにインストールしたくはなかったが仕方あるまい。

こんなことが世間一般のNTEmacsユーザにも起きているかどうかは分からない。現時点までどこにも記述がないので、きっと私だけに起きているのだろう。

原因として考えられるのは、smtp.el が含まれるパッケージとして本来はflimを入れなければならない代わりに、日本語による添付ファイルが正常に処理できるようにlimitを入れていることぐらいかもしれないが、ちょっと判りかねる。

ここで問題?なのは、Gmailでは、SMTPがSTARTTLS(tcp/587)もしくはSSL(tcp/465)の双方に対応しているものの、IMAPがSSL(tcp/993)のみであることだ。IMAPでもSTARTTLSが使えれば、個人的には極めてスッキリするが、所詮はいつ潰れるか分からんフリーのサービスだ、そこまでは言うつもりもない。Gmailは、Googleが送受信した文章を見て各アカウントに適した広告を出しているので、このアカウントを使っていると『通信の秘密』なんてものは保たれてないも同然と考えるべきものだ。私のGmailアカウントも、自分の常用E-mailアカウントを晒したくない人にE-mailアドレスを知らせなければならないという“オトナの事情”のために取ったもので、いわゆる『捨て垢』扱いになっている。

—–

ちなみに私はcygwinがあまり好きではなく(Linuxを使うならWindowsなんぞパーティションごと消し去る)、NTEmacsもcygwinでコンパイルしたものではなく、FSFが自らコンパイルしたGNU Emacs 22.1 for Windowsを常用している。