メールはあなたのものです。とはいえ、それを一度にすべて Gmail から取り出すことを、Google は快く思っていません。1つのアカウントが1日に引き出せるバイト数には公開された上限があり、それを超えるとアカウントは応答を止めます——1分ではなく、場合によっては1日にわたって。
この上限に、メールを読んでいるだけで達する人はいません。アーカイブ全体を持ち出そうとした最初の瞬間に、それに達するのです。
Google が公開している数字
上限はユーザーごと、日ごとに設定されており、Google は Workspace のすべてのエディションに一律で適用しています。
- IMAP ダウンロード:1日 2,500 MB。 バックアップ、アーカイバー、デスクトップのメールクライアントに関係するのはこの数字です。
- POP ダウンロード:1日 1,250 MB。 IMAP の半分。POP でアーカイブすべきでない、もう一つの理由です。
- ウェブクライアントからのダウンロード:1日 1,250 MB。 ブラウザから添付ファイルをドラッグして取り出す操作も、この中に含まれます。
- IMAP アップロード:1日 500 MB。 この制限が効いてくるのは、メールを Gmail アカウントから取り出すときではなく、Gmail アカウントへ移し入れるときです。
- ウェブクライアントからのアップロード:1日 1,500 MB。
しきい値を超えると、アカウントは一時的に停止されます。Google 自身の言葉によれば、停止は通常1時間続きますが、最大24時間に及ぶこともあります。サインインしても、メールボックスの代わりにエラーが表示されます。何かが削除されるわけではありません——ただ、何も利用できなくなるだけです。
Google はまた、これらの上限が予告なく変更される可能性があるとも述べています。これは、この数字を契約のように当てにした設計をしないように、という丁寧な言い回しです。現在の数値は Google の Gmail 帯域制限ページ.
2.5 ギガバイトは、割り算をするまでは太っ腹に見える
大学時代から使い続けているメールボックスが小さいことは、まずありません。15年分の領収書、親戚から届いた写真、会計士からの PDF、10年分のニュースレターはあっという間に積み上がります——30、40、60 GB はごく普通です。
1日2,500 MB のペースでは、40 GB のメールボックスに最低でも16日間のダウンロードが必要です。16時間ではありません。16日間です——しかも、他の何もアカウントに触れず、1バイトも二重に取得されないという前提で、です。
どんなメールボックスでも上限で割れば、必要な日数が出ます。10 GB のアカウントなら4日。50 GB なら20日。100 GB なら40日です。そしてサーバーがすでに拒否した後もツールが再試行を続ければ、超過のたびに翌日分の割り当てを飲み込む利用停止を招きかねません——その場合、これらの数字はすべて2倍になります。
この最後の点に驚く人は多いです。予算はアプリではなく、アカウントに属します。バックグラウンドで同期しているスマートフォン、大きなフォルダを更新しているノートパソコンのメールクライアント、メールボックスを処理しているアーカイブツール——すべてが同じ 2,500 MB から引き出します。バックアップ自体はまったく行儀よく動作していても、他の3つのクライアントが同時に稼働していたというだけでアカウントがロックされることがあります。
請求額の大半を占めるのは添付ファイルです。プレーンテキストのメッセージ10万通は、写真が添付されたメール400通より軽いことすらあります。つまり、メッセージ数で見たメールボックスのサイズは、何日かかるかについてほとんど何も教えてくれません。
Gmail は1通のメッセージを複数回カウントする
Gmail はラベルのふりをしたフォルダシステムではありません。フォルダのふりをしたラベルシステムです。IMAP 上では、3つのラベルが付いた1通のメッセージが、3つのメールボックスに加えて All Mail にも現れます。すべてのフォルダを走査して見つけたものをすべてダウンロードするツールは、そのメッセージを4回ダウンロードし——1日の上限に対しても4回分が計上されます。
Gmail に接続するあらゆる IMAP クライアントに当てはまる実践的なルールは、All Mail か個々のラベルのどちらか一方を選び、両方は選ばないことです。All Mail にはすべてのメッセージがちょうど一度だけ含まれるため、完全なアーカイブを作るなら効率的な選択肢になります。両方を選ぶことは、1日分の帯域を午後のうちに使い切り、その労力の見返りに重複を抱え込む最もよくある方法です。
上限に達するとどうなるか
警告は一切ありません。サーバーは単に応答を拒否し始め、クライアント側に表示されるのは通常、「本日のダウンロード量が上限に達しました」といった明確なメッセージではなく、不親切な認証エラーや接続エラーです。この状態を認識しないソフトウェアはこれを一時的な失敗とみなし、すでに停止されたアカウントに対して律儀に、辛抱強く、ループで再試行し続けます。
本当の被害はここにあります。上限そのものは時間を奪うだけです。ロックされたアカウントに再試行を続けることは、翌日まで奪うのです。
自分がすでに何を持っているかを知っているアーカイバー。 MailVault はメールを一度だけ読み取り、あなたのものであるファイルとして保存し、Gmail が今日はここまでと告げたら、静かに手を止めます。
MailVault にアクセスしてください →MailVault は上限の中でどう動くか
MailVault は、ローカルのメールアーカイバーです。サーバー上のメールを、標準の .eml ファイルとしてご自身のディスクにコピーします。ディスク容量ではなく帯域幅こそが希少な資源だという前提で作られています。
- 同じメッセージを二度とダウンロードしません。 何かを取得する前に、サーバー上の UID とディスクにすでに保存済みのメッセージを比較し、差分だけを要求します。変更のないメールボックスに対する2回目の実行は、わずか数十キロバイトで済み、もう一度 2,500 MB を使うことにはなりません。これは、Gmail 上のアーカイバーが持ちうる、最も重要な特性です。
- 接続の圧縮をネゴシエートします。 サーバーが
COMPRESS=DEFLATEをサポートしている場合、MailVault はそれを利用します。ヘッダーとプレーンテキストの本文は非常によく圧縮されますが、すでに圧縮済みの添付ファイルはほとんど変化しません。テキスト中心のメールボックスには実質的な余裕を生みますが、写真中心のメールボックスにはほぼ効果がありません。 - 先にヘッダー、本文は後。 メッセージのエンベロープは小さなものです。先にこれをダウンロードすることで、本文の内容にその日の割り当てを使う前に、メールボックスの全体像——差出人、日時、サイズ——を確認し検索できます。
- 触れずに読み取ります。 すべての取得には
BODY.PEEKを使用するため、アーカイブによってメールが既読になることも、他のクライアントで再同期が発生することもありません。 - 少数の接続をプールして再利用し フォルダごとに新しい接続を開くことはしません。これは、Gmail の同時接続数の上限を避ける方法でもあります。
- サーバーが「止まれ」と言えば止まります。 Gmail が帯域制限を報告すると、MailVault は停止に向けて再試行するのではなく、そこで実行を終了します。すでにダウンロードした分はすべてディスクに残り、アプリは1日の上限に達したこと、リセット後——通常は1時間以内、最大24時間以内——にもう一度実行するようにと、はっきり伝えます。
- アーカイブそのものが状態です。 進行状況が普通のフォルダの中の普通のファイルとして保存されているため、中断された実行は壊れたデータベースにはなりません。翌日の実行は、ディスク上にあるものを見て差分から再開します。
これは何も賢いことではありません。1日あたりの割り当てを環境の事実として扱うソフトウェアと、サーバーを無限だと思い込むソフトウェアの違い、それだけのことです。
大容量の Gmail アカウントを実際にアーカイブするには
- 時間単位ではなく、日単位で計画する。 メールボックスのサイズを 2.5 GB で割り、少なくともその回数のセッションを見込む。
- アーカイバーは一度に1つだけ動かす。 最初のフルパスが実行されている間は、他のデバイスの積極的な同期を止めておく。
- All Mail かラベルのどちらかを選び、両方は選ばない。 All Mail には、すべてのメッセージが重複なく含まれています。
- 最大のコストは最初に来ると心得る。 初回のパスがもっとも高くつきます。それ以降の実行は、以後に届いたものだけを取得します。
- アカウントがロックされたら、待つ。 ツールをループで再起動しない。1時間の辛抱は、1日分の停止より安くつきます。
- 手元にあるものを確認する。 一度も開いたことのないアーカイブは、バックアップではなく単なる願望です。標準の
.emlファイルはどのメールクライアントでも開けます。それこそが、この形式を使う理由です。
MailVault は、この6つをすべて標準で行います。macOS と Linux に対応しています。
まだ解決できていないこと
正直であることは、マーケティングより安上がりです。現在の MailVault は、制限を予測するのではなく、制限に反応します。1日の使用量に対してバイト数を数え、2,500 MB を下回るようにペースを調整することはしません。また、ラベルの下にあるメッセージと All Mail にある同じメッセージが、2通ではなく1通であることを認識するために、Gmail 独自のメッセージ識別子をまだ使っていません。どちらも今後の課題です。それまでは、上に挙げた指針——アーカイブツールは1つだけ、All Mail のみ、数日に分けて——が、より少ないコードで同じ役割を果たします。
クラウドからメールを取り戻す、1日分ずつ。 MailVault は Gmail をはじめ、あらゆる IMAP アカウントを標準の .eml ファイルとしてご自身のマシンに保存し、同じメッセージを二度とダウンロードすることはありません。
