Mewからssl経由でgmail/yahoo mailを利用

けっこうはまってしまったのでメモ。

準備

stunnelはcygwinのものを利用。
上記プラスcygwinのopenssl(鍵を作るため)

設定

mewの設定

(setq mew-config-alist
      '(
	("default"
         ("name"         . "名前")
         ("user"         . "ユーザ名")
         ("mail-domain"  . "gmail.com")
         ("pop-ssl"      . t)
         ("pop-ssl-port" . "995")
         ("pop-auth"     . pass)
         ("pop-user"     . "ユーザ名")
         ("pop-server"   . "pop.gmail.com")
	 ("ssl-cert-directory" . "/cygdrive/d/home/.certs")
         ("ssl-verify-level" . 2)	;0だと鍵のチェックしない
	 ("imap-server" . "imap.gmail.com")
	 ("imap-user" . "ユーザ名")
	 ("imap-auth" . t)
	 ("imap-ssl" . t)
	 ("imap-ssl-port" . 993)
         ("smtp-ssl"     . t)
         ("smtp-ssl-port" . "465")
         ("smtp-user"    . "ユーザ名")
         ("smtp-server"  . "smtp.gmail.com"))

	("yahoo"
	("user" . "ユーザ名")
	("mail-domain" . "yahoo.co.jp")
	("mailbox-type" . pop)	;or 'mbox
	("inbox-folder" . "+inbox")
	("pop-server" . "pop.mail.yahoo.co.jp")
	("pop-ssl" . t) ;;
	("pop-ssl-port" . "995")
	("pop-auth" . pass)
	("pop-user" . "ユーザ名")
	("smtp-server" . "smtp.mail.yahoo.co.jp")
	("smtp-ssl" . t)
	("smtp-ssl-port" . "465")
	("ssl-cert-directory" . "/cygdrive/d/home/.certs")
	("ssl-verify-level" . 2)	;0だと鍵のチェックしない
	("smtp-user" . "ユーザ名")))
      )

上記設定はwebからかき集めてきたので、いらない設定もあるかも。
ssl-cert-directoryは信頼できるCAの証明書の置き場所。
フルパスで、cygwinの形式で記述する必要があった。
証明書の用意は、下記のやり方そのままでOKでした。
ファイル名を".crtや.pemのハッシュ値".0にする必要があるみたい。
http://d.hatena.ne.jp/sleepy_yoshi/20080223/p1

opensslから接続検証コマンド
openssl s_client -connect pop.mail.yahoo.co.jp:995 -CApath ~/.certs/

stunnelの設定

stunnelのバージョンは4.26。
cygwinのsetup.exeから入れた直後は設定ファイルが置かれていないので、サンプルを見ながら自分で用意する。
cygwinの端末からstunnelを引数なしで実行すると設定ファイルの設定値に起因するエラーメッセージが表示されたのでいろいろ調節する。
setuid周りはwindows環境だとエラーになるのでコメントアウト
cert=d:/home/.certs/cert.pem
key=D:/home/ssl/private/key.pem
certはopensslで作った自分の証明書、keyはその鍵を指定。
[参考]
http://bitarts.jp/tech/linux/openssl.html