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