Monitorar a entrega de correio de saída do Postfix

11

Estou usando o GNU Mailman com Postfix para executar uma lista de emails e gostaria de monitorar a entrega de emails de saída, ou seja: para cada email enviado da lista, verifique se uma mensagem 250 (OK) foi respondida e, se não, , informe-me.

Por enquanto, estou fazendo uma rápida e suja:

# cat /var/log/syslog | grep "smtp.*to=.*" | grep -v 250

Existe uma maneira limpa de monitorar a saída do smtpd?

Stéphane Caron
fonte
11
Certamente isso deve ser um uso inútilcat ? No mínimo, você pode fazergrep "smtp.*to=.*" /var/log/syslog | grep -v 250
um CVn
Pessoalmente acho que a cruzada de um pedante pouco na maioria dos contextos e preferem formato modular do OP mais legível,
jchook

Respostas:

8

Não há como monitorar os e-mails enviados de maneira limpa. Você pode apenas grep os detalhes no correio de correio do postfix.

Aqui está um exemplo:

log='logfile of postfix'
grep "status=sent" $log | \
egrep -ve 'postfix/(cleanup|pickup|master|qmgr|smtpd|local|pipe)'

E também evite os registros para dkimetc. Se você precisar da contagem de e-mails, envie-os wc -lno final.

mala direta
fonte
3

E se:

multitail -eX "smtp.*to=<(.*)>.*sent.*250" './bin/received' -f /var/log/maillog

./bin/received é um script de shell que obtém o endereço de email de destino como parâmetro e faz algo com ele.

Guillermo Payet
fonte
1

tente isso

cat /var/log/maillog |grep -v "relay=local" |grep "relay=" |grep "status=sent"

você encontrará informações muito úteis aqui http://en.redinskala.com/postfix-maillog-interpretation/

Christoforos
fonte
Por que você está usando aspas inteligentes? Eles não vão funcionar.
DavidPostill
0

Estou assistindo quem envia e-mail através do meu servidor com este:

tail -f /var/log/mail.log | grep 'sasl'

Mostra quem é o usuário autenticado quem está enviando.

user1182988
fonte