Eu tenho um usuário local do procmail "bob".
Se um e-mail chegar e corresponder a [email protected], nenhuma ação deverá ser tomada.
No entanto, se um e-mail chegar e for [qualquer outra coisa]@domínio.com, gostaria de reescrever a linha de assunto para inserir "[spam]" na frente da linha de assunto.
Portanto, é uma correspondência reversa em "bob@" (correspondência em qualquer coisa que não seja bob@) e preservamos a linha de assunto original, apenas acrescentando "[spam]" à frente dela.
Como posso fazer isso com o Procmail?
Seus requisitos são bastante obscuros. O procmail pode corresponder em qualquer string, mas você realmente quer procurar a string em qualquer lugar da mensagem? E você realmente quer ignorar as mensagens sem
domain.com
elas para o propósito desta regra?Os limites de palavra
\<
e\>
impedem a correspondência em substrings comotombob
ousubdomain.complete.org
, e os parênteses vazios são um hack porque o Procmail é estranho sobre regexes que começam com uma barra invertida.Se você quer dizer que quer olhar apenas nos cabeçalhos, solte o
HB
da primeira linha de dois pontos (você pode deixar oH
mas esse é o padrão se você não colocar nenhum sinalizador). Se você quiser corresponder a um cabeçalho específico, soletre-o. Se você deseja examinar o destinatário especificamente, a^TO_
macro permite que você faça isso em vários cabeçalhos diferentes (To:
,Cc:
, etc) facilmente.Como deixamos de lado as
HB
bandeiras, podemos combinar o que antes eram duas receitas com bandeiras diferentes. O segundo^TO_
verifica qualquer endereço, incluindobob
, que, no entanto, já foi excluído pela condição negada anterior.Isso ainda tem alguns casos de canto que podem precisar ser mais explorados; se você puder editar sua pergunta para esclarecê-la, talvez eu possa atualizar isso para cobrir mais do que o básico.
O SMTP não exige que o destinatário seja especificado nos cabeçalhos, no entanto. O caso clássico é
Bcc:
que também é essencialmente o mecanismo usado por muitas listas de discussão. Talvez o seu MTA explique o destinatário,Delivered-To:
mas, falando corretamente, esse tipo de filtro é melhor implementado no MTA.