この年末年始休みは、メールのプッシュ着信に関する調査をぼちぼちとおこなっています。Yahoo!メールと組み合わせてGmailをプッシュ着信させる裏ワザの記事など書いてみましたのでよろしければ読んでみてください。
この記事をまとめていて疑問に思ったのは「iOSでプッシュメールが使えるYahoo!メールが、Androidなどほかの環境ではプッシュメールにならないのはなんでだろう?」ということでした。Yahoo!メールのプッシュは標準化されている「IMAP IDLE」で実現されているものだと思い込んでいた故の疑問でしたが、実際はどうも違うらしくて、
YahooメールでのIMAPでのプッシュ受信ができない (Google グループ)
なにやらIMAPに対して「XAPPLEPUSHSERVICE」という独自拡張を行ってプッシュメールを実現している様子。独自拡張の内容を確認したわけではないのですが、こちらの記事を読む限り
IMAP IDLE – iPhone? (Michael Stilkerich)
端末からIMAPでリクエストした時点でプッシュ通知(Apple Push Notification Service、APNS)用の情報も一緒にサーバーに送って、サーバーはメールが着信したらAPNSによって通知するようです。
つまりスマートフォンでプッシュメールを実現するための手段として、Exchange、IMAP IDLEのほかにXAPPLEPUSHSERVICEを用いた方法が存在するという解釈でよさそうですね。
これを踏まえて、有名なメールサービスのプッシュ技術対応表を作ってみるとこんな感じになります。GmailのExchange欄はこれからサポートを終了するという意味で○→×と書いています。
Exchange | IMAP IDLE | XAPPLEPUSHSERVICE | |
Gmail | ○→× | ○ | × |
Yahoo!メール | × | × | ○ |
Outlook.com | ○ | × | × |
一方、主要プラットフォームのプッシュ技術対応表はこんな感じ。Windows Phoneは手元にないので検証できずすみません。Windows 8の「メール」アプリにおけるIMAP IDLEについては明確に対応をうたった資料を見つけられませんでしたが、IMAPアカウントを設定したときの受信頻度設定に「アイテム受信時」という項目があり、実際にもプッシュ着信が行われていたので○としました。AndroidのIMAP IDLEについてはK-9 Mailなど対応メールアプリが存在するという意味で○にしています。
Exchange | IMAP IDLE | XAPPLEPUSHSERVICE | |
iOS | ○ | × | ○ |
Android | ○ | ○ | × |
Windows 8 | ○ | ○ | × |
こうやって見ると、オープン規格でないとはいえExchangeはプラットフォーム側のサポートが一番広いんですね。「ベンダー依存規格のExchangeでなくてもオープン規格のIMAP IDLEで同じことができる」というのがExchangeサポート終了におけるGoogleの主張なのでしょうが、iOSはIMAP IDLEに対応していないという現実もあるわけで。Exchange以上にベンダー依存が強いXAPPLEPUSHSERVICEをGoogleがサポートすることも考えにくいでしょうね。
このように状況を整理してみると、GmailをiOS標準メールアプリでExchangeサポートを使わずにプッシュ着信できるようにするためには、iOS側がIMAP IDLEに対応する以外に方法がなさそうです。Googleとしては素直にGmailアプリを使えという態度でしょうか。