muttでメールを年ごとにアーカイブする方法は?

muttでメールを年ごとにアーカイブする方法は?

64,000 個のメールを含む IMAP フォルダがあります。年ごとに保管したいです。どうすればいいですか?

答え1

おそらく最も簡単な方法は、Tタグモード機能(ここでバインディング)を使用して1年分のメッセージにタグを付け、タグプレフィックス(;sここ)を使用してメッセージを保存してフォルダに配置することです。

Muttにはいくつかの日付パターンの一致があります(残念ながら、すべてdd / mm / yyyy形式の日付を使用します)。これmutt マニュアルの「パターン修飾子」セクションすべてリストされていますが、役に立つのは~d(送信日、日付:ヘッダー、送信者によって指定されているため、なりすまし)、~r(受信日)です。 2018年に受信されたメッセージの例:~r01/01/2018-31/12/2018

通常、年間アーカイブを実行する場合は、次の行が必要になることがあります。

save-hook ~r01/01/2019-31/12/2019 =Archives/2019
save-hook ~r01/01/2020-31/12/2020 =Archives/2020

あなたの設定では(残念ながら、数年ごとに数行を追加しない方法が見つかりませんでした)。

もう1つの方法は、Muttの外部からIMAPサーバーにアクセスできることです。たとえば、Dovecot を実行している IMAP サーバーへのシェル アクセス権があるため (直接実行するため)、doeveadm年間 cron ジョブで使用できます。

this_year=$(date +%Y)
last_year=$((this_year-1))
#⋮
newbox="Sent/$last_year"
doveadm mailbox create "$newbox" || true
doveadm -v move "$newbox" mailbox 'Sent' SENTBEFORE "$this_year-01-01" SENTSINCE "$last_year-01-01"

関連情報