Expressões regulares no procmail podem abranger várias linhas (mas, como em tudo no procmail, você precisa ter cuidado para que um erro de digitação não faça com que sua regra falhe silenciosamente). No passado, escrevi receitas procmail que correspondem a um relatório quando tudo corre bem e as salva na caixa de correio noise
. Então, se esse relatório chegar na minha caixa de correio, isso significa que há um problema que preciso examinar (ou isso, ou que eu tenho um problema com meu .procmailrc
)
Veja um exemplo que examina o cabeçalho e o corpo da mensagem e examina um relatório complexo que costumava receber em um orkplace antigo:
:0 :
* ^From: [email protected]
* ^To: [email protected]
* ^Subject: cron output from host.my.dom.ain
* B ?? ^^No account processing to do this run\.\.\.\
^Configuring databases\. Please wait\.\.\.\
(^\*\*\* No IP address for.*)*\
^Processed [0-9]+ total hosts with the following distribution:\
(^[0-9]+ (common|osX|win(7|8)))+
\
^Generated [0-9]+ ganglia clusters containing [0-9]+ machines\
(^Installing new ssh_known_hosts\.\.\.)?\
^Looking for sendmail aliases to generate\
(^No users in passwd file that have no \(valid\) entry in aliases\.forward)?\
(^()\
^Updating the serial number in .*\.Zone )*\
(^Updating hosts file)?)+
noise
Quando você estiver escrevendo sua receita, recomendo que use um arquivo de mensagem de teste e um arquivo procmail de teste. Faça com que a receita salve a mensagem em um arquivo de teste e execute procmail
manualmente. Verifique a saída de registro para certificar-se de que todas as condições coincidam. Para a parte de correspondência corporal, tente escrever essa linha de cada vez.