Expressões regulares no procmail

1

Eu tenho um problema com o backscatter para falsas-vindas de endereço geradas aleatoriamente em um domínio com um catchall.

O falso-alias está usando um esquema, usando o egrep com o regexp

^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]{2,5}@example.org.*

no meu maildir lista todos os backscatters indesejados e, felizmente, nenhum endereço usando este esquema está realmente em uso.

No entanto, o procmail está convencido de que não corresponde.

:0hD:
* ^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]{2,5}@example.org.*
!spam

procmail: No match on "^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9]{2,5}@example.org.*"

Não consigo que o procmail interprete uma expressão regular como egrep (e outras ferramentas que usam regex).

O que estou fazendo de errado?

Descobri que, por padrão, o procmail ignora maiúsculas e minúsculas, por isso adicionei "D" à receita. Mas eu não encontro nenhum exemplo com o uso de [A-Z] em uma receita do procmail. Estou tentando algo impossível?

    
por Christian 30.05.2016 / 16:49

1 resposta

2

O dialeto regex do Procmail não suporta o operador de repetição {m, n} . Você simplesmente terá que soletrar o padrão à mão (talvez use uma variável se ficar muito grande).

:0D
* ^To:.*.[A-Z].[a-z].*[A-Z].[a-z].*[0-9][0-9]([0-9]([0-9][0-9]?)?)?@example\.org
!spam

Como um aparte, você não deve usar o bloqueio em uma receita de encaminhamento, um curinga à direita é inútil e o h é o padrão; então eu tirei essas coisas.

    
por 30.05.2016 / 17:44