imap が動いている?

Mountain Lion (10.8) Server では以前の10.6 のときと異なり、サーバ管理ソフトからPOP3とIMAPを独立して制御できない。Server.app ではメールサーバをON-OFFどちらかにしか設定できない。ONにしたらPOPサーバが動いているのはメールが使えるので確認できるが、IMAPはルータを設定していなかったことから確認できなかった。

IMAP の動作確認は;

http://www.lins.jp/~obata/imap/uw-imapd.html を参考にした。
サーバでターミナルを起動し、telnet でポート143で接続してみる。

$ telnet localhost 143
Trying ::1…
Connected to localhost.
Escape character is ‘^]’.
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=CRAM-MD5 AUTH=X-PLAIN-SUBMIT AUTH=DIGEST-MD5 AUTH=PLAIN AUTH=LOGIN AUTH=GSSAPI] Dovecot ready.

このような表示が出れば動いていることが確認できる。さらにユーザ名でログインし、メールボックスがちゃんとしているかどうかの確認ができる。IMAPのコマンドは、頭にコマンド番号をつける必要がある。番号をつけなかったから、最初はなにやってもエラーだった。下の例ではコマンド番号が A03 でlogin すると 同じコマンド番号が頭についた形で返事が来る。A04 というコマンド番号でメールボックスがどうなっているかを見て、A06 でlogout したわけだ。コマンドに大文字小文字の区別はない。

A03 LOGIN [ユーザ名] [パスワード]
A03 OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE SORT SORT=DISPLAY THREAD=REFERENCES THREAD=REFS MULTIAPPEND CATENATE UNSELECT CHILDREN NAMESPACE UIDPLUS LIST-EXTENDED I18NLEVEL=1 CONDSTORE QRESYNC ESEARCH ESORT SEARCHRES WITHIN CONTEXT=SEARCH LIST-STATUS COMPRESS=DEFLATE X-FTS-COMPACT QUOTA URLAUTH] Logged in

A04 SELECT INBOX
* FLAGS (Answered Flagged Deleted Seen Draft NonJunk)
* OK [PERMANENTFLAGS (Answered Flagged Deleted Seen Draft NonJunk *)] Flags permitted.
* 37 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1346028720] UIDs valid
* OK [UIDNEXT 1091] Predicted next UID
* OK [HIGHESTMODSEQ 2698] Highest
* OK [URLMECH INTERNAL] Mechanisms supported
A04 OK [READ-WRITE] Select completed.

A06 logout
* BYE Logging out
A06 OK Logout completed.
Connection closed by foreign host.

IMAP のコマンドは他に色々あるはずだが、いじることはないので、調べることもしないよ。

ルータの設定

ルータにはYAMAHA NYR500 を使っている。IMAPはこれまで通していなかった。他のPOP3とかは勿論通しておいたのだが、ユーザが特に必要としていなかったからだ。そしたら、通す設定方法を忘れてしまって、しばらく悩んだ。

ルータ設定のトップページ → 詳細設定と情報 → 基本接続の詳細な設定 → インターフェース WAN の設定の「設定」 → 静的IPマスカレード関連(フィルタの自動定義:80~94番) で 「追加」 をクリックする。

プロトコル:TCP、 ポー:143、使用ホストIPアドレス:ルータ配下のIMAPのメールサーバのIPアドレス(192.168.xx.xx)

を入力する。 静的IPマスカレード関連(フィルタの自動定義:80~94番)のところに

20130814router-1

プロトコル:tcp、ポート:imap2、使用ホストIPアドレス:192.168.xx.xx

と表示されたらOKだ。

さらに、ルータ設定のトップページ → 詳細設定と情報 →ファイヤーウォール設定 → WANポートのフィルタの設定 → でフィルタを追加する。

入り にチェック、pass、ログを残さない、送信元IPアドレス:*、送信元ポート:*、受信先IPアドレス:192.168.xx.xx、ポート:143 というフィルタを加える。

20130814router-2

ポートが開いているかどうかのチェックはCMAN のインターネットサービスのポートチェックが便利だ。

IPv4動的フィルタの一覧ではプロトコルはimap、imap3しか選択余地がなく、静的IPマスカレードではimap2 となるのはなぜだ?まだわかってないな。