メールソフトで受信するたびに、前に受け取ったはずのメールがまた届く。受信がいつまでも終わらず、受信トレイに同じメールが何通も並ぶ。こうした現象は、POP3 で「サーバーにメッセージを残す」設定にしているときに起きやすいものです。仕組みを知っておくと、慌てずに直せます。

POP3 と「受信済み」の記録

POP3 は、サーバーに届いたメールを、手元のメールソフトに取り込むための通信の決まり (プロトコル) です。もともとは、受信したメールをサーバーから削除し、手元だけで管理する使い方を前提にしています。

「サーバーにメッセージを残す」設定にすると、受信したあともメールはサーバーに残ります。すると、次に受信するとき、メールソフトは、サーバーにあるメールのうちどれをすでに受信したかを、自分で判断しなければなりません。そこで使われるのが UIDL という命令です。UIDL を送ると、サーバーはメール 1 通ごとに、ほかと重ならない識別子 (ユニーク ID) を返します。メールソフトは、受信したメールの識別子を手元のファイルに記録しておき、次回は、記録にない識別子のメールだけを受信します。

UIDL は、POP3 の仕様 (RFC 1939) では必ず備えなければならない命令ではありませんが、今の一般的なメールサーバーは対応しています。

同じメールを何度も受信する原因

この仕組みのどこかが崩れると、受信済みのメールが「新しいメール」に見えてしまいます。

  • 受信済みの記録が壊れた、または保存されなかった: 受信の途中でメールソフトが強制終了した、ウイルス対策ソフトがファイルを使用中にした、ディスクの空きが無くなった、などの理由で記録が更新されないと、同じメールを受信し直します
  • サーバー側の識別子が変わった: サーバーの移転や、メールボックスの作り直しで識別子がすべて変わると、サーバーにあるメールを全部受信し直すことになります
  • サーバーからの削除が済んでいない: POP3 では、削除の命令 (DELE) を送っても、その場では削除の印が付くだけで、通信を正しく終える命令 (QUIT) を送ったときに初めて削除されます。受信の途中で通信が切れると、削除が行われずにメールがサーバーに残り、受信済みの記録も更新されていなければ、次回また受信します
  • 大きなメールの受信が、毎回途中で失敗している: 添付ファイルの大きなメールが時間切れなどで受け取れず、受信のたびに最初からやり直していることもあります

直す前に、まずバックアップ

設定やファイルに手を入れる前に、メールのデータをバックアップしておきます。Thunderbird では、メールも設定も「プロファイルフォルダー」と呼ばれるフォルダーにまとめて保存されています。プロファイルフォルダーは、メニューの「ヘルプ」にある「トラブルシューティング情報」から開けます (表記は版によって違うことがあります)。Thunderbird を終了してから、フォルダーごと別の場所にコピーしておきましょう。

受信済みの記録を作り直す

Thunderbird では、POP3 のアカウントごとに、受信済みの識別子の記録が popstate.dat というファイルに保存されています。ふつうは、プロファイルフォルダーの中の Mail フォルダーに、アカウント (サーバー名) ごとのフォルダーがあり、その中にあります。見つからないときは、プロファイルフォルダーの中を popstate.dat という名前で検索してください。

(プロファイルフォルダー)/
  Mail/
    pop.example.com/
      Inbox
      popstate.dat   ← 受信済みの識別子の記録

この記録が壊れていると思われるときは、次の手順で作り直せます。

  1. Thunderbird を終了する
  2. popstate.dat の名前を popstate.dat.bak などに変える (消さずに残しておく)
  3. Thunderbird を起動して、受信する

記録が無くなるので、その時点でサーバーに残っているメールは、すべて受信し直しになります。重複したメールは整理が必要になるため、先にサーバーに残っているメールの数を、Web メールなどで減らしておくと楽です。問題なく受信できるようになったら、.bak のファイルは消してかまいません。

設定を見直す

再発を防ぐには、サーバーにメールを残す期間を決めておくのが効果的です。Thunderbird のアカウント設定の「サーバー設定」では、サーバーにメッセージを残すかどうかと、受信してから何日たったらサーバーから削除するかを設定できます。サーバーに残るメールが少なければ、記録が壊れたときの受信し直しも少なくて済み、サーバーの容量もあふれにくくなります。

パソコンとスマートフォンなど、複数の端末で同じメールを読むなら、IMAP を使うほうが向いています。IMAP では、メールはサーバーの上で管理され、既読かどうかや、フォルダーの分け方も端末のあいだで共有されます。受信済みかどうかを端末ごとに覚えておく必要がないので、この種の問題は起きにくくなります。ただし、IMAP では、ある端末でメールを削除すると、ほかの端末からも消えます。POP3 から IMAP に切り替えるときは、その違いを知ったうえで、先にバックアップを取ってから行いましょう。

まとめ

  • POP3 でサーバーにメールを残すと、メールソフトは UIDL の識別子で、受信済みかどうかを覚えている
  • 記録が壊れる、サーバーの識別子が変わる、削除が済まない、などで同じメールを受信し直す
  • Thunderbird では popstate.dat が記録のファイル。終了してから名前を変えると作り直せる (作業の前にバックアップを取る)
  • サーバーに残す日数を決めておく。複数の端末で読むなら IMAP が向く

参考