11

簡単な質問:特定の件名のメールをフォルダに移動し、後で既読のマークを付けたい。引っ越しは私のために働きます

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

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

4

1 に答える 1

17

注: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"
}

メールドロップソリューション

序文:最近、私は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コマンドは直感に反する可能性があることに注意してください。マニュアルには次のように記載されています。

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

于 2011-10-06T15:20:40.557 に答える