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 !

Était-ce utile?

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.

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