Question

une question simple: Je souhaite déplacer les e-mails avec un certain sujet vers un dossier et les marquer comme lus par la suite.Le déménagement fonctionne pour moi avec

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

Mais comment marquer les mails comme lus?

Était-ce utile?

La solution

<₹ Remarque: mise à jour déc.16e 2011

Solution Procmail

La recette suivante fonctionne pour moi..Junk est le dossier spam:

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

Solution Maildrop

Préface: Récemment, j'ai eu (non, je voulais) faire la même chose avec un maildropfilter.Après avoir lu man maildropfilter, j'ai concocté la recette suivante.Je suis sûr que les gens trouveront cela pratique - je sais que oui.

L'exemple ci-dessous marque les nouveaux e-mails comme lus mais aussi les anciens messages non lus.

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

Notez que la commande exception peut être contre-intuitive.Le manuel indique ce qui suit:

L'instruction d'exception intercepte les erreurs qui provoqueraient normalement maildrop pour terminer.Si une erreur fatale est rencontrée n'importe où dans le bloc d'instructions encadré par la clause d'exception, exécution reprendra immédiatement après la clause d'exception.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top