質問
簡単な質問:特定の被験者を使用して電子メールをフォルダーに移動し、後で読むようにマークを付けたいと思います。動く動作は私のために働きます
: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
コマンドは直感に反するかもしれません。マニュアルには次のように述べられています。
例外ステートメントは、通常メールドロップを終了させるエラーをトラップします。例外条項に囲まれたステートメントのブロック内で致命的なエラーが発生した場合、実行は例外条項の直後に再開されます。
所属していません StackOverflow