mirror of
https://git.myvelabs.com/docker/myvemailbackup.git
synced 2025-12-17 19:46:18 +00:00
75 lines
2 KiB
Bash
Executable file
75 lines
2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# Abort if an error is encountered
|
|
set -e
|
|
|
|
# Exit function
|
|
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"
|
|
|
|
echo -e "${red}
|
|
Error encountered in the following init script:
|
|
${yellow}
|
|
${@}
|
|
${red}
|
|
Aborting...
|
|
${reset}"
|
|
|
|
exit 77
|
|
}
|
|
|
|
# Reset
|
|
echo | tee /var/log/maillog /etc/postfix/{relaydomains,transportmaps,helo_access,rbl_override}
|
|
|
|
# Postfix
|
|
echo ${MYVEMAIL_DOMAIN} >/etc/mailname
|
|
postconf -e "myhostname = ${MYVEMAIL_SUBDOMAIN}.${MYVEMAIL_DOMAIN}"
|
|
postconf -e "mydestination = \$myhostname, ${MYVEMAIL_SUBDOMAIN}.${MYVEMAIL_DOMAIN}, localhost, localhost.localdomain, localhost"
|
|
postconf -e "mydomain = ${MYVEMAIL_DOMAIN}"
|
|
|
|
# resolv.conf
|
|
[ -d /var/spool/postfix/etc/ ] || mkdir /var/spool/postfix/etc/
|
|
cp /etc/resolv.conf /var/spool/postfix/etc/resolv.conf
|
|
|
|
# Add primary mail servers to mynetworks
|
|
if [ ${MYVEMAIL_PRIMARYMX} ]
|
|
then
|
|
primarymx+=(${MYVEMAIL_PRIMARYMX//,/ })
|
|
postconf -e "$(postconf mynetworks)$(printf ' %s/32' ${primarymx[@]})"
|
|
fi
|
|
|
|
# Relay setup
|
|
addmx=(${MYVEMAIL_DOMAIN})
|
|
addmx+=(${MYVEMAIL_ADDMX//,/ })
|
|
printf '%s OK\n' ${addmx[@]} >/etc/postfix/relaydomains
|
|
for domain in ${addmx[@]}
|
|
do
|
|
echo "${domain} smtp:mail.${domain}:25" | tee -a /etc/postfix/transportmaps >/dev/null
|
|
echo "${domain} OK" | tee -a /etc/postfix/{helo_access,rbl_override} >/dev/null
|
|
done
|
|
|
|
# Start postfix
|
|
postfix start
|
|
postmap /etc/postfix/relaydomains /etc/postfix/transportmaps /etc/postfix/helo_access /etc/postfix/rbl_override
|
|
postfix reload
|
|
|
|
# Downtime log
|
|
install /dev/stdin /usr/local/bin/downtime <<- downtime
|
|
#!/usr/bin/env bash
|
|
# Send downtime log to downtime email address
|
|
echo "From: ${MYVEMAIL_SUBDOMAIN}@${MYVEMAIL_DOMAIN}
|
|
To: downtime@${MYVEMAIL_DOMAIN}
|
|
Subject: Monthly downtime log
|
|
|
|
\$(cat /var/log/downtime)" | sendmail downtime@${MYVEMAIL_DOMAIN}
|
|
|
|
# Delete log to start anew
|
|
echo >/var/log/downtime
|
|
downtime
|
|
|
|
# Monitor log
|
|
echo -e "\n\e[1;32mMail service is ready\e[0m\n"
|
|
tail -f /var/log/maillog
|