Filtrer les e-mails en contenant mon nom dans « À » à l'aide de procmail
-
12-12-2019 - |
Question
À l'aide de procmail, je souhaite déplacer tout courrier entrant qui ne contient pas mon nom (« John Doe ») dans le champ « À » vers le dossier « Indésirable ».
Cependant, la règle suivante ne semble avoir aucun effet, même si j'ai testé minutieusement l'expression régulière dans des applications de test en ligne pour m'assurer qu'elle correspond à ce qu'elle devrait :
# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/
Au cas où cela vous intéresserait, l'intégralité de mon fichier de règles procmail est :
# Filter mail using SpamAssassin
:0fw: spamassassin.lock
* < 256000
| /usr/bin/spamassassin
# Filter spam based on "Spam-Level"
:0:
* ^X-Spam-Level: \*\*
.Junk/
# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/
Pourquoi ma règle ne fonctionne-t-elle pas ?
Merci pour toute aide !
La solution
Parce que les anticipations Perl ne font pas partie du répertoire regex de Procmail.
Essayez plutôt ceci.
:0
* ! ^To:.*John[ ]+Doe
.Junk/
L'espace à l'intérieur de [ ] doit être un espace et une tabulation ;le \s
Le perlisme n'est pas non plus pris en charge.
Vous feriez peut-être mieux d'utiliser votre adresse e-mail comme critère de filtrage, et peut-être d'utiliser le ^TO_
macro spéciale pour couvrir Cc :etc.Vous ne parvenez toujours pas à gérer Cci :sur votre compte, bien sûr.