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!

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top