#!/usr/bin/env bash # Check filters unset filters if [ ${MYVEMAIL_REJECT_FILTER} ] then filters+=(${MYVEMAIL_REJECT_FILTER//,/ }) fi # Notify if rejected emails were found while true do bash -c 'tail -n +0 --pid=$$ -f /var/log/mail/maillog.debug* | grep --line-buffered -F -v -f /var/log/mail/reject.log | { sed "/NOQUEUE: reject/q" && kill $$ ;}' grep -h "NOQUEUE: reject" /var/log/mail/maillog.debug* | grep -F -v -f /var/log/mail/reject.log >>/var/log/mail/reject.log if ! tail -n 1 /var/log/mail/reject.log | grep -i -q "$(printf '%s\|' ${filters[@]:-impossible-string-that-would-never-be-grepped} | sed 's|\\\|$||')" then cat <<- mail | sendmail reject@${MYVEMAIL_DOMAIN} From: reject@${MYVEMAIL_DOMAIN} To: reject@${MYVEMAIL_DOMAIN} Subject: Rejected email found $(tail -n 1 /var/log/mail/reject.log) mail fi done >/dev/null &