Mew + Stunnel
1 Windows版 Emacs + Mew で SSL 運用
いよいよ我がプロバイダも SSL にしないとメールが使えなくなるので設定してみました (令和の今頃ですか)。 結構ハマったのでおさらいと未来の自分に向けて手順を書いておきます。 環境は Win10 です。
2 用意するもの
- GNU Emacs 28.0.50 (build 1, x86_64-w64-mingw32) of 2021-01-16
- Mew version 6.8
- stunnel 5.62 on x64-pc-mingw32-gnu platform
- プロバイダの証明書
3 stunnel の指定
Win 用の strunnel ダウンロードしインストールして、その bin にある tstunnel.exe を .mew.el 等で mew-prog-ssl にセットします。 stunnel.exe ではなくコンソール版の tstunnel.exe なので注意してください。
(setq mew-prog-ssl "c:/Program Files (x86)/stunnel/bin/tstunnel.exe")
4 証明書を得る
件のプロバイダのWEBページをブラウザで開き、 URL欄先頭の鍵アイコンをクリックしてクロムなら 「この接続は保護されています」->「証明書は有効です」-> 「詳細」を開き、 「ファイルにコピー」をクリッし Base64 でエクスポートし "ハッシュ値.0" という名前にして "~/.certs" に置きます。 ハッシュ値は ファイル "foo.pem" だとすると 以下のように openssl(stunnel に同梱)で得ます。
$ openssl x509 -hash -noout -in foo.pem
5 .mew.el 参考設定
(push '(over-ssl (name "Shiina Fubuki") (user "fubuki") (mail-domain "sample.org") (smtp-ssl t) (smtp-server "smtpssl.jp") (smtp-ssl-port "465") (pop-ssl t) (pop-server "popssl.jp") (pop-ssl-port "995") (pop-auth pass)) mew-config-alist)
6 錠前が表示されない!!
暗号通信のとき本来モードラインのメジャーモード名の後に錠前のビットマップ・イメージが表示されるよう Mew 自体は組まれているのですが (mew-secure-format と mew-icon-directory のセットが必要)、 mode-line-format を展開するバグのようで、ネストが深いとテキスト・プロパティが落ちて 表示されないようです(Emacs 28で確認)。
なので出現位置を妥協して、もっと浅瀬にひっつけて無理矢理表示させるのが以下です。 モードライン頭の方に現れます。
(setq mew-icon-directory "~/.emacs.d/mew-6.8/etc/") (add-hook 'mew-summary-mode-hook #'(lambda () (let ((lock `(mew-summary-buffer-secure-process ,mew-secure-format2))) (or (member lock mode-line-front-space) (push lock mode-line-front-space)))))
文字でもいいなら以下だけで出ます。
;; (setq mew-icon-directory "~/.emacs.d/mew-6.8/etc/") ;; (setq mew-secure-format mew-secure-format2) (setq mew-secure-format " Ψ")
以上です
TOP