PocketPuTTY+nPOPでメール送受信をトンネリング

PCに来るメールをW-ZERO3で読むにはPOP受信の設定をすればいいんだけど、組織のセキュリティポリシによってはメールサーバは内部ドメインからしかアクセスできず、外部ドメインからのアクセスを拒否してる場合がある。うちの研究室とかそうなってます。
nPOPとかはAPOP受信に対応してるので、受信のみならなんとかならんこともないんだが、このままじゃあ送信や返信ができない。かといってヘッダのFromでアドレスだけ詐称して、自宅のプロバイダの送信メールサーバ経由で投げると送信アドレスと送信メールサーバのドメインが一致せずスパムで捨てられる危険性がある。
じゃあどうすりゃいいかと言うと、普段PCで外部から使う場合はsshでポートフォワーディングして送受信してるわけです。ということはPocketPuTTY使えば、W-ZERO3でも同じことができるんじゃねぇ?ということでやってみました。
esで動作確認してますが、PocketPuTTYもnPOPもWM5互換なら同じような方法で使えるんじゃないかと思います。
まず、PocketPuTTY for W-ZERO3 日本語対応版をインストール。
sessionタブでsshする外部公開サーバーを指定。Tunnelsタブでポートフォワーディングを指定。送信メールサーバの25番ポート(SMTP)と受信メールサーバの110番ポート(POP)を端末の10025番と10110番ポートにマッピングします。例えば送信メールサーバがsmtp.hoge.jpの場合、Sourceを10025、Destinationsmtp.hoge.jp:25と指定してAddで追加します。受信メールサーバも同様に設定してSaveします。これでPocketPuTTY側の設定はOK。補足としてsshの圧縮オプションEnable compressionを使うと若干だけパケ数を節約できるかもしんないです。
ダイレクトに110と25を使わないのはpdxメールの自動受信とタイミングがかぶってしまうと変な動作をしそうだからという理由。W-ZERO3ではなく普通のPCで使う場合は110と25を直接使わないと実装によってはウィルススキャンがかからない可能性があるので変なポートを使うのはおすすめできませんがね。

次にメーラーの設定。標準のW-ZERO3メールやPocketOutlookもSMTP/POPが使えるのでこれでもいいんだが、ヘッダのみ全取得して必要なものだけ本文受信して読めるnPOPのが低速な環境にはうれしいということでnPOPを採用。本家ではなく派生版のnPOPsで。こっちはソフトキー対応してるからという理由。

詳細な設定は付属の説明書に書いてあるのでそっちに任せるとして、ここでは設定上注意する点のみ。まず、送受信のメールサーバの名前はlocalhostに設定、ポート番号は先ほどPuTTYの方で設定した10110と10025にしておく。で、接続タブでダイアルアップではなくLAN接続にする。つまりメーラーから見ると、localhostという名前のメールサーバが同一LAN内に存在する状態になっていて、このlocalhostというのがPocketPuTTYの仮想ターミナルに対応する。で、localhostに向かってSMTPやPOPの要求を投げるとsshで実際のメールサーバにフォワーディングされるという仕組みになってるわけです。
あと、自動接続とか切断関係のオプションもすべて無効にしておく。ダイアルアップするのはメーラーではなくPuTTYがしているため。

で、実際に送受信する場合は、PocketPuTTYを起動して保存したセッション設定をロードし、connectを押す。で、ログインのユーザー名やパスワードを入力してログインする。この状態でメーラーの送受信を実行すればOK。PQzIIなどのタスク切り替え系のアプリがあると切り替えが楽でいいんじゃないかと。

注意点として、一定時間パケット通信がないと自動的に切断されてしまう&切断されるとソケットエラーダイアログが出てPuTTYがフリーズするので、送受信の直前にセッションを張って、送受信が終わったらすぐセッションを閉じること。

そんなこんなで外部非公開なメールサーバの送受信がW-ZERO3からできるようになりました。