mutt:読み取りとしてマークして削除

mutt:読み取りとしてマークして削除

一部のメッセージを読み取らずに削除しました。ところで、上記のメールを削除してからすぐにごみ箱に未読のメールがあるという通知が出ました。

次の方法はありますか?

  • set beep_newごみ箱に新しいメッセージが見つかったら、通知を無効にします()。
  • また、メッセージを読み取りとしてマークして削除しますか?

前者はごみ箱フォルダフックを使用して取得でき、後者はマクロを使用して取得できると思います。ただし、後者の場合、メッセージ(Wn)またはスレッド全体(^R)を読み取りとしてマークした後、フォルダ内のメッセージの場所によっては、選択した項目が変更または変更されないことがあります。

次に、条件を使用して、項目ナビゲーションコマンドを使用して選択項目を復元する方法を決定する必要があります。選択を復元した後、メッセージを削除できます。公式文書によると、構成ファイルは条件をサポートしていないため、マクロベースのソリューションにはシェルスクリプトを介したパイピングを含めることができます。

たぶん私が見落としているより簡単な解決策がありますか?

答え1

メッセージを読み取りとしてマークして同時に削除するには、set resolve=noコマンドの前に使用して次のメッセージにスキップしないようにすることができます。これにより、条件などを確認する必要がなくなります。操作が完了すると、カーソルはそのまま残ります。

たとえば、次のコマンドを使用して、メッセージをアーカイブメールディレクトリに移動する前に読み取りとしてマークします。

macro index,pager a ":set confirmappend=no delete=yes resolve=no\n<clear-flag>N<tag-prefix><save-message>=archive\n:set confirmappend=yes delete=ask-yes resolve=yes\n<next-undeleted>"

これは次のことを行います。

  • resolve=no次のメッセージにジャンプしないことを含む、作業の前にいくつかの値を設定します。
  • 未読フラグをクリアします。<clear-flag>N
  • マイライブラリにメッセージを保存する:<tag-prefix><save-message>=archive
  • 以下を含む一部に応答する値の設定を指定します。resolve
  • 削除されていない次のメッセージに移動します。<next-undeleted>

したがって、読み取りと削除としてマークするには、次のように機能する必要があります。

macro index,pager d ":set confirmappend=no delete=yes resolve=no\n<clear-flag>N<tag-prefix><delete-message>:set confirmappend=yes delete=ask-yes resolve=yes\n<next-undeleted>"

答え2

このオプションを有効にすると、imap_check_subscribedすべてのIMAPサブスクリプションフォルダが自動的にメールボックスリストに追加されます。

このコマンドは、unmailboxesリストからメールボックスを削除するために使用できますmailboxes。したがって、ファイルに以下を追加できます.muttrc

push ":unmailboxes +[Gmail]/Trash<enter>"

このコマンドは、設定ファイル()を読み取った後にメールボックスのリストを検索して追加するunmailboxesため、直接使用できないため、必須です。imap_check_subscribed.muttrcpush

答え3

最も確実な方法は、新しいメールのメールボックスリストに「ごみ箱」が含まれていないことをmuttで確認することです。

つまり、メールボックスにごみ箱フォルダを追加しないでください。

たとえば、次を使用して電子メールリストを生成する場合:

郵便\
  /var/spool/mail/ユーザー名\
  `Find~/Mail -type f xargs`

grep -v trashcan |次に、次のようにxargsの前に追加します。

`検索〜/メール - タイプf | grep -v xargs`

関連情報