Procmail:フォルダーに移動し、読み取りとしてマークします

StackOverflow https://stackoverflow.com/questions/5882840

  •  28-10-2019
  •  | 
  •  

質問

簡単な質問:特定の被験者を使用して電子メールをフォルダーに移動し、後で読むようにマークを付けたいと思います。動く動作は私のために働きます

:0: H
* ^Subject:.*(ThisIsMySubject)
$HOME/mail/ThisIsMyFolder

しかし、メールを読んだとマークする方法は?

役に立ちましたか?

解決

注:12月に更新。 2011年16日

Procmailソリューション

次のレシピが私のために機能します。 .Junk スパムフォルダーです:

MAILDIR=$HOME/Maildir
:0
* ^X-Spam-Flag: YES
{
    # First deliver to maildir so LASTFOLDER gets set
    :0 c
    .Junk

    # Manipulate the filename
    :0 ai
    * LASTFOLDER ?? ()\/[^/]+^^
    |mv "$LASTFOLDER" "$MAILDIR/.Junk/cur/$MATCH:2,S"
}

MailDropソリューション

序文:最近、MailDropFilterで同じことをする必要がありました(いいえ、私は望んでいました)。読んだあと man maildropfilter 次のレシピを作り上げました。私は人々がこれを便利に見つけると確信しています - 私は私がそうすることを知っています。

以下の例は、新しいメールを読み取るだけでなく、古いメッセージも読み取れないことを示しています。

SPAMDIRFULL="$DEFAULT/.Junk"

if ( /^X-Spam-Flag: YES$/ || \
     /^X-Spam-Level: \*\*\*/ || \
     /^Subject: \*+SPAM\*/ )
{
  exception {
    cc "$SPAMDIRFULL"
    `for x in ${SPAMDIRFULL}/new/*; do [ -f $x ] && mv $x ${SPAMDIRFULL}/cur/${x##*/}:2,S; done`
    `for x in ${SPAMDIRFULL}/cur/*:2,; do [ -f $x ] && mv $x ${SPAMDIRFULL}/cur/${x##*/}S; done`
    to "/dev/null"
  }
}

に注意してください exception コマンドは直感に反するかもしれません。マニュアルには次のように述べられています。

例外ステートメントは、通常メールドロップを終了させるエラーをトラップします。例外条項に囲まれたステートメントのブロック内で致命的なエラーが発生した場合、実行は例外条項の直後に再開されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top