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) 
共通テーマ:パソコン・インターネット

CentOS 8でのネットワークの自動起動 [CentOS]

CentOS 8 に久しぶりにログインしたところ、ネットワークが有効にならなかった。
原因は、Network Manager の自動起動を無効化していたためである。
(環境構築の最後に、Network Manager の自動起動を無効化していた。)
CentOS 8 では、Network Manager を起動しないと、ネットワークが有効にならない。
(CentOS 7 では、このようなことは発生しない。)

Network Manager は余分なことをしようするため、個人的には使用したくない機能である。
以下は、CentOS 8 において、Network Manager を使用しない場合の設定に関する情報である。

1. 発生事象


CentOS 8 では、Network Manager を起動しないと、ネットワークが有効にならない。


2. 対処方法


下記のいずれかの手順を実施する。


(1) Network Manager を使用しない場合


(a) 下記のパッケージの追加を行う。

・network-scripts.x86_64
・net-tools.x86_64 … ifconfig 等のコマンドを使用する場合


パッケージの依存関係により、下記のパッケージがインストールされる。
・network-scripts-team.x86_64
・bc.x86_64


(b) network.service を起動する。

# systemctl enable network
# systamctl start network


(2) Network Manager を使用する場合


(a) Network Manager による /etc/resolv.conf の更新を無効化する。


/etc/NetworkManager/NetworkManager.conf に下記の設定を追加する。

[main]
dns=none


(b) Network Manager を起動する。

# systemctl enable NetworkManager
# systemctl start NetworkManager


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

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。