Filtro de e-mail contendo o meu nome "Para" usando o procmail
-
12-12-2019 - |
Pergunta
Usando o procmail, quero mover qualquer entrada de emails que não contêm o meu nome ("John Doe") no campo "Para" para o "Lixo" da pasta.
No entanto, a seguinte regra não parecem ter qualquer efeito, apesar de eu ter testado a expressão regular exaustivamente em testes online de aplicativos para garantir que ele coincide com o que deveria:
# Filter spam if the name "John Doe" is not in "To"
:0:
* ^(?!To:.*John\sDoe).*
.Junk/
Em caso de interesse, toda a minha procmail arquivo de regra é:
# 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/
Por que não a minha regra de trabalho?
Obrigado por qualquer ajuda!
Solução
Porque o Perl lookaheads não são parte do Procmail do regex repertório.
Tenta este, em vez.
:0
* ! ^To:.*John[ ]+Doe
.Junk/
O espaço em branco dentro de [ ] deve ser um espaço e um guia;o \s
Perlism não é suportado, ou.
Você pode ser melhor fora de usar seu endereço de e-mail como o critério de filtragem, e talvez usando a ^TO_
macro especial para cobrir Cc:etc.Você ainda não pode lidar com Bcc:para sua conta, é claro.