SSブログ

GmailのPOPサーバーにおいて、メールの存在を認識できないことがある [Linux]

1. 発生事象


Gmail の POP サーバーにおいて、メールの存在を正しく認識できないことがある。
このため、クライアント側での既読情報の管理には工夫が必要である。

(例)
(1) 時刻 X + 0 分の確認結果: 3 通のメールが存在
  この時点でのクライアントの管理情報を下記のようにする。
  ・未読のメール数/メールの総数: 3/3
  その後、すべてのメールを参照し、クライアントの管理情報を下記のようにする。
  ・未読のメール数/メールの総数: 0/3
(2) 時刻 X + 10 分の確認結果: メールなし ← 実際には 3 通のメールが存在
  メールが存在しないため、既読メールに関する情報が初期化される。
  よって、クライアントの管理情報は下記のようになる。
  ・未読のメール数/メールの総数: 0/0 ← 正しくは 0/3
(3) 時刻 X + 20 分の確認結果: 3 通のメールが存在
  3 通を新規メールと判断し、クライアントの管理情報は下記のようになる
  ・未読のメール数/メールの総数: 3/3 ← 正しくは 0/3
(4) メールの存在が認識される場合には、メールの UID は正しい値が得られる。


・メールが存在する場合に、メールなしと回答されることがある。
・発生頻度は低い。
 2021-08 の上旬に数回発生した。
・少し時間をあけ再実行すると、正しい結果が得られる。
 現在、10 分毎に確認を行っている。
・現時点では、Gmail 以外の POP サーバーでは発生していない。
・存在確認には、Perl の Mail::POP3Client.pm を使用したスクリプトを使用している。


2. 対処方法


上記のスクリプトに、下記の機能を追加する。


(1) クライアント側で既読情報を一定の期間保持する。


(変更前)
サーバー上で存在が確認されたメールの既読情報しか保持しない。

(変更後)
一度作成した既読情報は、メールなしと判断された後も一定期間保持する。
・例えば、メールなしと判断された後の 3 回目の確認時まで保持する。



nice!(0)  コメント(0) 
共通テーマ:パソコン・インターネット

nice! 0

コメント 0

コメントを書く

お名前:[必須]
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。