Nokia E61 IMAP IDLE
Nokia E61で新着メール受信の通知をリアルタイムで受けるため、「IMAP IDLEコマンド」をテストしてみました。
E61のIMAP4
E61端末搭載のメーラーはIMAP IDLEコマンド
に対応しています。IMAP IDLEコマンドはIMAPの接続を維持した状態でクライアントがIDLE状態になり、メール受信など、Mailboxの変更を検知するとサーバー側からクライアントに通知する仕組みです。これを利用すると他のサービスを利用しなくてもほぼリアルタイムに新着メール受信の通知を受けることができます。
IMAP IDLE対応のサーバー
dovecot
、Courier-IMAP
など、主要なIMAPサーバーはIMAP IDLEコマンドに対応しています。
お使いの環境でIMAP IDLEコマンドが利用できるかは「CAPABILITY」に「IDLE」が含まれるかで確認できます。telnetで以下のように確認できます。
$ telnet localhost 143
Trying 127.0.0.1...
Connected to localhost (127.0.0.1).
Escape character is '^]'.
* OK Dovecot ready.
1 capability
* CAPABILITY IMAP4rev1 ... IDLE ...
1 OK Capability completed.
実際の通信量
1時間接続して通信量を確認しました。IMAPはdovecot、アクセスポイントは mopera Uです。この間にメール受信はしていません。以下はスクリーンショットです。
スクリーンショット
 |
メール受信がない状態でも1時間で約10KBの通信が発生しています。これは、dovecot側から120秒周期でkeepalive(NOOP)が送信され、E61がその応答を行っているためです。
テストした環境ではSSLを使用しませんでしたが、使用する場合は上記より通信量が多くなります。
リアルタイム性
メール送信後、数秒でE61では「新着E-Mail」となり、非常に良い感じです。ただし、使用するサーバーや回線によって遅延が起こる可能性はあります。
Direct Pushとの比較
Direct PushはMicrosoft(Exchange)の(擬似?)Pushメール技術です。仕組み的には
- クライアントがHTTPまたはHTTPSによってサーバーにリクエストを発行。
- クライアントはスリープ。
- サーバーは即座にレスポンスを返さず、事前に設定された時間(15分など)応答を保留する。ただし、その間にMailboxに変化があるとその時点でレスポンスを返す。
- クライアントは変化があった旨のレスポンスを受け取ると、メールを受信する。
- クライアントは再度リクエストを発行する。
のようになっています。不正確な部分があるかも知れませんので、詳細はこちら
をご確認ください。
これらの仕組み上、やはり定期的にクライアント-サーバー間で通信が発生します。Web上の情報によると、おおよそ15~20KB/時だそうです。IMAP IDLEコマンドを利用した場合と大差なさそうです。
その他
IMAP IDLEコマンドが利用できる環境をお持ちの方は、追加サービスの契約やアプリケーションのインストールが不要ですので試してみる価値はありそうです。ただ、やはり120秒周期のkeepaliveによる通信がネックになります。
特にバッテリーの消費量はかなり問題です。
使い方によると思いますが、24時間はもたない感じです。この周期を調整すれば、通信量やバッテリー消費も改善できそうです。
また、IMAP IDLEが利用できるプロバイダはあまりないようです。mopera UではIMAPが提供されていますが、capabilityで確認したところ、IMAP IDLEコマンドは提供されていないようでした(2007/01現在)。
$ telnet mail.mopera.ne.jp 143
(略)
1 capability
* CAPABILITY IMAP4rev1 UIDPLUS NAMESPACE QUOTA STARTTLS
1 OK CAPABILITY completed