メールの「削除」と「アーカイブ」の違い、ご存知ですか?
→ いまさら聞けないメールの「削除」と「アーカイブ」の違い
(2016年11月3日 追記)
———
AppBank の主任です。
標準のメールアプリでメールを受信する方法は2つに分けられます。「プッシュ」とあまり聞き慣れない「フェッチ」です。
「プッシュ」ならリアルタイムにメールを受信できると言われていますが、どうやってそれを実現しているのでしょうか?「フェッチ」との違いは何なのでしょうか?
そこで今回は「プッシュ」「フェッチ」の違い、そして「バッテリーを節約するならフェッチにすべし」と言われる理由をご紹介いたします。
メールが送受信できる仕組み
プッシュとフェッチの違いをご紹介する前に、その前提となるメールを送受信できる仕組みをご説明する必要があります。
例えば iPhone からメールを送る場合は以下のようになります。iPhone から送信サーバを通じ、相手の受信サーバに届きます。
iPhone でメールを受け取る場合は以下のようになります。受信サーバに届いたメールを iPhone のメールアプリで受け取ります。
今回ご紹介する「プッシュ」「フェッチ」が使われるのは、このメール受信サーバと iPhone のメールアプリの間になります。
プッシュとは?
「プッシュ」は、ほぼリアルタイムに新着メールを受け取れる方法です。なぜ「ほぼ」リアルタイムなのでしょうか?
それは、新着メールを受信したサーバから iPhone へ「新着メールが届きました」という通知を送り、それを受け取ってから iPhone がそのメールをダウンロードするためです。
この新着メールを受信したサーバと iPhone の間で何らかの問題が生じると、iPhone での受け取りが遅れます。
こうした遅延は、サーバと iPhone の間の回線状況が悪かったり、サーバを利用するユーザーが多かったり、iPhone 上で通知システムが正しく機能しないと起こります。
そのためにプッシュは「ほぼ」リアルタイムに新着メールを受信できる方法となります。
フェッチとは?
「フェッチ」とは日本語で「〜を取って来る」という意味があります。その名の通り、受信サーバからメールを取って来ます。
プッシュとの違いは、サーバから「新着メールが届きました」という通知がないこと。ほぼリアルタイムに新着メールを受信できません。
では、どのようにメールを受信するのかというと、一定時間ごとに iPhone からサーバに「新着メールはありませんか?」と問い合わせます。
問い合わせの結果、サーバに新着メールがあればそれを受け取ります。
iPhone の場合は15分・30分・1時間ごとに問い合わせられる他に手動、メールアプリを開いた時やリストを下に引っ張った時にも問い合わせられます。
バッテリーを節約するならフェッチ?
一見すると、新着メールがあっても無くても問い合わせを繰り返す「フェッチ」の方が「プッシュ」よりも無駄が多いように思えます。
しかし、「iPhone のバッテリーを節約するならフェッチにすべし」と Apple も以下のウェブページでアドバイスしています。なぜでしょうか?
→アップル – バッテリー – iPhone
それはプッシュを使う場合、サーバが送る「新着メールが届きました」通知を iPhone でいつでも受け取れる状態にしておくので、バッテリーが減りやすいからです。
通知を受け取るには iPhone とサーバの間で「セッション」が必要です。これは通信を行うための下準備であり、通信を終えるとセッションは無くなります。
プッシュの場合はサーバからいつ通知が来るか、通信を行うかは分かりません。ですから iPhone とサーバの間でセッションを維持する必要があります。
セッションを維持するには、サーバから iPhone に対して状況を確認するコマンドが送信され、iPhone はそれに答えます。こうした通信・処理を定期的に行うので、バッテリーが減りやすくなるのです。
一方で「フェッチ」は iPhone の場合、15分・30分・1時間ごとにサーバに「新着メールはありませんか?」と問い合わせます。
その度に通信するので、セッション維持に掛かる通信・処理が必要なく、バッテリー消費を抑えることができます。
もちろんサーバに問い合わせる間隔が短ければ、その分だけセッション構築・通信を行う機会が増えるので、バッテリーの消費も増します。
ですから、バッテリーの消費を抑えるためにはメールの受信方法をフェッチに切り替えるだけでなく、問い合わせの間隔を長くすることも重要となります。