ターミナルでThunderbirdで未読メールの数を確認してください

ターミナルでThunderbirdで未読メールの数を確認してください

Thunderbirdプロファイルで未読メールの数を表示するステータスバーインジケータをi3に追加したいと思います。 Thunderbird自体には、この情報を取得するためのコマンドラインオプションがないため、次のX-Mozilla-Statusコードを使用してデータベースにクエリを試みました。

$ grep 'X-Mozilla-Status:' ~/.thunderbird/<profile>/ImapMail/<email>/INBOX

しかし、すべてのメッセージは同じステータスコードを持っているようです(メッセージを読んでいないかどうかは違いありません)。

X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000

完全な/未読の電子メールの数の統計を取得するためのスクリプトを書く他の方法はありますか?

ベストアンサー1

いくつかの実験結果が役に立つことを願っています。 (Tbird 60.3.1、MX-Linux 17.1)Anlarが言ったように、INBOXファイルはメッセージを受信すると変更されますが、メッセージをプレビューまたは読み取るときは変更されません。これらのINBOX.msfは、これらの操作を理解できないMork形式で記録します。

新しいメッセージを受信すると、表示(^ 94 = 1)がINBOX.msfに追加され、以前に未読メッセージを読み取るかプレビューすると、表示(^ 94 = 0)が追加されます。したがって、

grep '(^94=.)' /home/user/.thunderbird/profile-name/ImapMail/imap.account.com/INBOX.msf | tail -1

マーク (^94=1)、このアカウントに新しいメッセージが 1 つ以上あります。 (^94=0) の場合、最後の操作は新しいメッセージを読み取るかプレビューすることです。ただし、まだ読んでいないメッセージがある可能性があります。 (編集:ファイル名の変更)

試行錯誤に過ぎませんが、それに基づいたスクリプト(新しいメッセージ検出器のみ、計算なし)はこれまでうまく機能しています。 :)(Mozillaフォーラムでこの質問を参照してください。)

次に追加:

msfファイルフィールドは最初にリストされ、その中には(A1 = numMsgs)(A2 = numNewMsgs)があります。計算にどのように使用するかは不明です。たとえば、このアカウントには3つの新しいメッセージがあります。

grep -n '(^A2=.)' INBOX.msf
432:    (^A8^85)(^B5=50)(^A1=20)(^A2=2)(^A6=50)(^BD^77A)(^C4=12)(^C5=2)
433:    (^C6=0)(^C7=0)(^C9^5B0)(^C8^A0)(^A4^760)(^A2=0)(^A2=0)(^A2=0)(^AA=0)]}
480:    (^B0=1)(^88^83)(^B1=222)(^B2^84)(^A8^85)(^B5=50)(^A1=21)(^A2=3)
482:    (^A4^760)(^A2=0)(^A2=0)(^A2=0)(^AA=0)]

Mockを知っている人が正しい数を抽出する方法を説明できますか?

おすすめ記事