AL-MailでPOP/SMTP over SSL/TLSする@commufa
セキュアな接続するぞ。
Dec.21,2009.
updated Dec.20,2010.
commufaさん、随分前にTLSに対応したのですが、AL-Mail32なんてレトロなメーラーを使ってるので今まで放置していました。
今回マルチアカウントに対応したナイスなプラグインを見つけたので、ようやくTLSに移行しました。AL-Mail、まだまだ現役。
stunnelを使った方法もご紹介します。設定方法はこちら。
SecureTunnel-pluginを使っていたらなぜか受信のできないISPに当たったので、勢いでstunnelを使ってみたのですが、
ひょっとしてと思いOpenSSLに切り替えたら(後述)うまく動いてしまいました。メモリの消費はどちらも大して変わらないようです。
stunnelの方が動作が高速で安定していますので、3つ以上のメールサーバーを利用している方はstunnelがおすすめです。
対して「おれはGmailしか使わねぇ」みたいな諸兄には外部サービスに依存しないSecureTunnel-pluginが断然お勧め。
個別の質問には対応しません。がんばってください。
SecureTunnel-pluginを利用する on Windows2000/XP
SSLラッパーとしてSecureTunnel-pluginを利用する方法です。
SecureTunnel-pluginは、自力でスレッドを起動してトンネルを作る、AL-Mail32用のプラグインです。OpenSSLライブラリ(使用する設定にした場合)以外の外部プログラムを必要としません。
インストール手順
Windows 7/Vistaでも基本的には同じですが、こちらは本体のインストール/利用に少しだけこつが要るので各自調査。
(ちなみに当方はXPのインストールイメージをそのままコピーして、かつMailboxをProgram Filesに置いていないので、特別な対応は必要ありませんでした。元々インストーラーは後付けだし(笑)。あ、AL-Treatmentは入れた方がいいかもです。)
- SecureTunnelなるAL-Mail32用のプラグインを入手。作者さんのwwwサイトから、プラグインバージョン(SecureTunnel-plugin-xxxxxxxx.lzh)をダウンロード。感謝感謝。
- 解凍したら、securetunnel.dllをAL-Mail32のプラグインフォルダ(通常はc:\program files\almail32\plugins)にコピー。
OpenSSLライブラリ(ssleay32.dll、libeay32.dll)をalmail.exeと同じ場所(pluginsフォルダではない)にコピー。
- AL-Mailを再起動。
commufaでの設定手順
解凍したファイル群のうち、SecureTunnel.txtもよく読んで。
- SSLを設定したいアカウントに切り替え。
- メニューからツール−オプション。
- アカウントのうち、サーバ名をlocalhostに設定。
- 高度な設定ボタンを押してポート番号を適当に設定。画面の例ではPOP3に9110、SMTPに9025を設定。ポート番号は1024から49151までの、他のプログラムやサービスで使っていない任意の整数。
普通のクライアントならどこでも大丈夫だと思うけど、気になるならポート番号一覧とかを参考にして番号を検討すること。自己責任で。
commufaではSMTP認証も必須なので、設定されていなければついでに設定。「メール送信時に認証する」をチェック、ユーザ名とパスワードはPOPアカウント(ユーザ情報)と同じものを入力する。
- メニューからツール−プラグイン・オプション−SecureTunnel。
- POP3 over SSL、SMTP over SSLともに「この機能を使う」にチェックを入れる。localhostのポート番号は先のアカウント設定で入力したポート番号を入れる(例ではPOP3に9110、SMTPに9025)。
POP3サーバ、SMTPサーバにはcommufaから指示されたサーバー名とポート番号を入力。
「STARTTLSを使う」という設定がありますが、commufaではチェックを外してください。チェックが入っていると通信できません。

- 将来commufaの仕様変更に伴ってサーバーが変更されるかもしれません。その際は適宜変更してください。
- SSL詳細設定は通常変更する必要はありません(commufaはTLSv1で通信できます)。
受信が途中で止まってしまうなどうまく通信できない場合は「使用するエンジン」の項目を「Windows標準」から「OpenSSL」に変更してみてください。
なお、OpenSSLを使用する場合はライブラリのインストールが必要です。インストール手順を参照のこと。
- プラグインの設定はアカウントごとに保存されます。複数のサーバーにアクセスする場合は、アカウントを設定する際にlocalhostのポート番号が重複しないようにします。
(例えば別のメールサービスではPOP3に9111、SMTPに9026などのように)まあ重複してるとエラーで蹴られますが。
- 同一サーバーの複数アカウントを利用する場合には(例えばcommufaでは標準でメールアカウントが5つ利用できます)、
1つのアカウントについて代表でSecureTunnelの設定をすれば、残りのアカウントについてはlocalhostポートを使い回しできます。作者さんヒントありがとう。
この場合2つめ以降のアカウントについては、サーバ名にはlocalhostを、ポート番号には代表アカウントと同じものを指定し、
SecureTunnelの設定でPOP3 over SSL、SMTP over SSLの「この機能を使う」のチェックを外します(未設定なら設定の必要はありません)。
- バージョン2.2からSTARTTLSに対応しています。これは今までのポートに平文で接続した後、同じポートのまま暗号化通信に切り替えるためのコマンドです。
このコマンドに対応しているサーバーの場合、設定で「STARTTLSを使う」にチェックを入れると、接続後すぐにTLSに切り替えて通信します。
SSL専用ポート(465/995)にアクセスする際にこのチェックが入っていると、接続に失敗します。なお、commufaは25/587/110のいずれのポートもSTARTTLSに対応していません(2009.12.1現在)。
- 余談ですが、465番はwell-known portとしては他のアプリケーションに割り当てられています
(随分前に変更になったらしい)。smtpsはIETFとしてはお勧めじゃなくて、25/587でSTARTTLSを使ってねみたいな感じだそうです。
STARTTLSのみ対応のISPがあるのも、おそらくはこれが理由です。だから今はまだ割と標準的に使われていますが、いずれは設定が変わるかもしれないです。
なので、もしご利用のISPがSTARTTLSとsmtpsポートの両方に対応している場合は、25/587でSTARTTLSを使う設定にした方がいいかもしれません。
AL-MailのバージョンとSMTP認証について
上記説明においてはAL-Mail32 ver1.13aを利用しています。commufaはCRAM-MD5でのSMTP認証に対応しています。
他のISPで設定を流用する際に、ISPがCRAM-MD5での認証に対応していない場合はAL-Mail公式サイトからver1.13bをダウンロードして利用してください。1.13bはCRAM-MD5に加えPLAIN、LOGINに対応しています。
ただし、1.13bが必要なのはあくまで「SMTP認証にCRAM-MD5以外の手順を用いる必要がある」場合のみなので、1.13aで不都合のない場合に1.13bを導入する意味はありませんし、お勧めできません。
(PLAIN、LOGINは通信路を平文でパスフレーズが流れるので、無理解のまま誤って安全性の低い設定をしないよう、公式ダウンロードページから参照できないようになっていると思われます。←勝手な想像(笑))
1.13bを導入済みの場合は先ずCRAM-MD5を選択し、他の方式はCRAM-MD5で認証ができない場合に限って選択します。
通信路を暗号化しないままPLAIN、LOGIN手順を使うのは特段の理由がない限り避けたほうがよいでしょう。RFCにも通信路がセキュアでない場合(SSLポートでない、ノーマルポートにおいてはTLSセッション確立以前)において、サーバーはAUTHコマンドでPLAINやLOGINなど安全性の低い手順を使えないようにする(クライアントにこれらの手順は使えないと応答する)べきである、という主旨の記述があります。