スクリプトを使用してmboxファイルから選択したEメールを削除する最良の方法

スクリプトを使用してmboxファイルから選択したEメールを削除する最良の方法

mbox形式の任意の電子メールファイルがあります。私の "警告" mboxファイル(新しいフォルダ)から1つの送信者(または特定のトピック)からのメッセージを定期的に(週末)自動的に(cron経由で)削除したいと思います。ある発信者がメッセージを「[Eメール保護]'毎日何十ものメッセージが送信されます。

定期的にこれを行いたいので、毎日手動で入力した作業が行われます。mutt -f alerts; D; [email protected]; $; y (purge)

.procmailrcまず探してみる必要があるので、オプションではありません。一度見てみると本当に素晴らしかったです。今週末はもう必要ありません。削除したいです。

ベストアンサー1

このクローン操作は、深夜1日ごとに指定したタスクを実行します。

0 0 * * * script >/dev/null -c 'env TERM=vt100 mutt -F/dev/null -falerts -e "push <delete-pattern>[email protected]<enter><sync-mailbox>y<enter><exit>"' /dev/null

それを分析しましょう。

script -c 'cmd'cmd偽のtty(pty)として実行してcmd 考えるカーソルモビリティなどを備えた端末があります。 Muttではこれが必要ですが、cronジョブではこれを行うことはできません。スクリプトはシムを提供します。スクリプトの一般的な作業は、コマンドセッションをファイルに書き込むことです。最後のパラメータは、/dev/null空のデバイスにレコードを書き込むことを意味します。なぜなら、再生可能な複数の呪いイベントについては気にしないからです。

env TERM=vt100...muttを実行する前にvt100端末を環境に入れることを意味します。クローン操作にはデフォルトの端末タイプがないため(デフォルトでは端末がないため)これが必要です。

他のすべてはmuttの一部です。私たちはそれを使ってあなたのコンテンツを読まないよう-F/dev/nullにします。.muttrc読書には問題はありませんが、muttrcの変更によってmuttの対話方法が変わる可能性があります。長期的には、デフォルトのmuttrcを使用する方が安全です-F/dev/null

この-eオプションは、muttに実行時に何をすべきかを伝えます。引数は-emuttrcファイルに入れることができるコマンドです。set、、、alternativesなどは、 bindキーボードバッファにキーストロークを「プッシュ」して、muttに次の内容を入力したかのように解釈させるコマンドです。hdr_orderPush

それでは、仮想キーを見てみましょう。

<delete-pattern>[email protected]<enter>キーを押してENTERを押すのと同じです[email protected]が、実際のキーの代わりにキーボードバインディングシンボルを使用します。これは、主キーまたは秘密鍵バインディングの変更からスクリプトを保護するため、マクロとプッシュのベストプラクティスです。インタラクティブヘルプからキーバインディングシンボルを取得できます。中間列のすべての名前(statementsで使用されますbind)はシンボル名です。

<sync-mailbox>$キーを押すのではなく、キー記号をもう一度押すのと同じです。y<enter>「確実ですか?」という質問にすばやく答えてください。

結局<exit>あきらめました。これでセッションも終了scriptし、cronコマンドも終了します。 cronと同様に、>/dev/nullcronノイズがメールボックスをいじめるのを防ぎます。

文字列全体pushが引用されていることに注意してください!これは重要です。幸いなことに、2つのレベルの引用符が必要なので、とんでもない引用符をエスケープせずに、単一引用符の中に二重引用符を使用できます。

おすすめ記事