Add a sendmail every time a rejected email is found

This commit is contained in:
myve 2025-02-25 22:34:27 +00:00
commit 9e4093fea1
3 changed files with 42 additions and 22 deletions

View file

@ -6,9 +6,9 @@ set -e
trap '[ "${?}" -ne 77 ] || exit 77' ERR
function die
{
local reset="\e[0m"
local red="\e[0m\e[0;31m"
local yellow="\e[0m\e[0;33m"
local reset="\e[0m"
local red="\e[0m\e[0;31m"
local yellow="\e[0m\e[0;33m"
echo -e "${red}
Error encountered in the following init script:
@ -18,23 +18,23 @@ ${red}
Aborting...
${reset}"
exit 77
exit 77
}
# Reset logs
for log in /var/log/maillog{,.{0..9}} /var/log/maillog.debug{,.{0..9}}
for log in /var/log/mail/maillog{,.{0..9}} /var/log/mail/maillog.debug{,.{0..9}} /var/log/mail/reject.log
do
if [ ! -f ${log} ]
then
touch ${log}
fi
if [ ! -f ${log} ]
then
touch ${log}
fi
done
syslogd -O /var/log/maillog -s 2000000 -b 10
syslogd -O /var/log/mail/maillog -s 2000000 -b 10
# Run all scripts in init folder
for file in /docker-entrypoint/init.d/*.sh
do
bash -c ${file} || die ${file}
bash -c ${file} || die ${file}
done
# Reload services
@ -43,4 +43,4 @@ postfix reload &&
echo -e "\n\e[1;32mMail service is ready\e[0m\n"
# Monitor log
tail -f /var/log/maillog{,.{0..9}} /var/log/maillog.debug{,.{0..9}}
tail -f /var/log/mail/maillog{,.{0..9}} /var/log/mail/maillog.debug{,.{0..9}}

View file

@ -6,22 +6,41 @@ atd
# Roundcube cleanup (daily)
while true
do
at -f /usr/share/webapps/roundcube/bin/cleandb.sh midnight
sleep 1d
at -f /usr/share/webapps/roundcube/bin/cleandb.sh midnight
sleep 1d
done &
# Update Postscreen Whitelists (daily)
while true
do
at -f /usr/local/bin/postwhite/postwhite midnight
sleep 1d
at -f /usr/local/bin/postwhite/postwhite midnight
sleep 1d
done &
# Update Yahoo! IPs for Postscreen Whitelists (weekly)
while true
do
at -f /usr/local/bin/postwhite/scrape_yahoo midnight sunday
sleep 7d
at -f /usr/local/bin/postwhite/scrape_yahoo midnight sunday
sleep 7d
done &
# Notify if rejected emails were found
while true
do
unset reject
reject=$(grep "NOQUEUE: reject" /var/log/mail/maillog* | grep -F -v -f /var/log/mail/reject.log)
if [ ${reject} ]
then
echo "${reject}" >>/var/log/mail/reject.log
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)
mail
fi
sleep 30
done &
# # Refresh ssl keys daily

View file

@ -482,7 +482,8 @@ cp /usr/local/bin/postwhite/postwhite.conf /etc
#// Syslog
#//
###############
cat >/etc/syslog.conf <<- 'syslog.conf'
mail.info /var/log/maillog
mail.* /var/log/maillog.debug
syslog.conf
mkdir -p /var/log/mail/
cat >/etc/syslog.conf <<- syslog
mail.info /var/log/mail/maillog
mail.* /var/log/mail/maillog.debug
syslog