Domanda

Uso di Procmail, voglio spostare qualsiasi mail in arrivo che non contiene il mio nome ("John Doe") nel campo "A" nella cartella "Junk".

Tuttavia, la seguente regola non sembra avere alcun effetto, anche se ho testato accuratamente l'espressione regolare nelle app di test online per assicurarmi che corrisponda a ciò che dovrebbe:

# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/
.

Nel caso in cui sia di interesse, il mio intero file di regole Procmail è:

# 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/
.

Perché la mia regola non funziona?

Grazie per qualsiasi assistenza!

È stato utile?

Soluzione

Perché Perl Lookaheads non fa parte del reggex reggex di Procmail.

prova questo.

:0
* ! ^To:.*John[  ]+Doe
.Junk/
.

lo spazio bianco all'interno [] dovrebbe essere uno spazio e una scheda;Il perlism \s non è supportato, neanche.

È possibile che sia meglio utilizzare il tuo indirizzo e-mail come criterio di filtraggio e forse utilizzando la macro speciale ^TO_ per coprire CC: ecc. Non è ancora possibile gestire BCC: al tuo account, ovviamente.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top