Supervisar la entrega de correo saliente de Postfix

11

Estoy usando GNU Mailman con Postfix para ejecutar una lista de correo, y me gustaría monitorear la entrega del correo saliente, es decir: para cada correo enviado desde la lista, verifique si se respondió un mensaje 250 (OK), y si no , repórtame.

Por ahora, estoy haciendo un rápido y sucio:

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

¿Hay una manera limpia de monitorear la salida de smtpd?

Stéphane Caron
fuente
1
¿Seguramente esto debe ser un uso inútilcat ? Por lo menos que puede hacergrep "smtp.*to=.*" /var/log/syslog | grep -v 250
un CVn
Personalmente, encuentro que la cruzada es un poco pedante en la mayoría de los contextos y prefiero el formato modular más legible del OP
jchook el

Respuestas:

8

No hay forma de monitorear los correos enviados de manera limpia. Solo puede grep los detalles del maillog de postfix.

Aquí hay un ejemplo:

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

Y también evite los registros para dkimetc. Si necesita el recuento de correos, entonces continúe wc -lal final.

remitente
fuente
3

Qué tal si:

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

./bin/received es un script de shell que obtiene la dirección de correo electrónico de destino como parámetro y hace algo con ella.

Guillermo Payet
fuente
0

Estoy viendo quién envía correos electrónicos a través de mi servidor con esto:

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

Muestra quién es el usuario autenticado que está enviando.

usuario1182988
fuente