diff --git a/build/run/docker-entrypoint/entrypoint.sh b/build/run/docker-entrypoint/entrypoint.sh index 9b3c44f..46e8d1a 100755 --- a/build/run/docker-entrypoint/entrypoint.sh +++ b/build/run/docker-entrypoint/entrypoint.sh @@ -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}} diff --git a/build/run/docker-entrypoint/init.d/50-cron.sh b/build/run/docker-entrypoint/init.d/50-cron.sh index 6dcbb07..1f496f6 100755 --- a/build/run/docker-entrypoint/init.d/50-cron.sh +++ b/build/run/docker-entrypoint/init.d/50-cron.sh @@ -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 diff --git a/build/run/installer.sh b/build/run/installer.sh index 9b69357..6757c51 100755 --- a/build/run/installer.sh +++ b/build/run/installer.sh @@ -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