Dada a seguinte receita do procmail:
:0:
* ^Subject:.*viagra.*
* ^From:.*viagra.*
/dev/null
O Procmail excluiria apenas e-mails que fossem de viagra e tivessem viagra no assunto. É possível aplicar o filtro se alguma das correspondências for verdadeira?
A solução preferencialmente não deve fazer uso da (regex1|regex2)
operação de expressão regular, mas se essa for a única solução, diga-o.
Responder1
Você está perto. Um forte entendimento de regex ajuda muito no sucesso de receitas de procmail. O Procmail é extremamente flexível, mas essa flexibilidade depende muito do regex.
:0:
* ^(From|Cc|To|Subject).*viagara.*
/dev/null
Como alternativa, e acredito que mais próximo do que você deseja alcançar, use um pipe e um novo escape de linha para continuar a regra na próxima linha (para facilitar a leitura). No seu exemplo, você estava criando uma nova condição que também precisava ser correspondida.
:0:
* ^Subject:.*viagra.* |\
^From:.*viagra.*
/dev/null
Responder2
Basta usar duas receitas, cada uma indo para /dev/null, uma correspondente ao Assunto e a outra correspondente ao De. A primeira partida vence. Isto é essencialmente o mesmo que um operador OR. A abordagem reg1|reg2 funcionaria, mas acho que pode ser lida mais claramente como duas receitas.