myvemail/build/run/docker-entrypoint/init.d/30-postfix.sh

53 lines
1.7 KiB
Bash
Executable file

#!/usr/bin/env bash
# Postfix
echo ${MYVEMAIL_DOMAIN} >/etc/mailname
postconf -e "myhostname = ${MYVEMAIL_SUBDOMAIN}.${MYVEMAIL_DOMAIN}"
postconf -e "mydomain = ${MYVEMAIL_DOMAIN}"
# resolv.conf
mkdir /var/spool/postfix/etc
cp /etc/resolv.conf /var/spool/postfix/etc/resolv.conf
# Whitelist localhost
tee /etc/postfix/postscreen_access.cidr >/dev/null <<- postscreen_access.cidr
# Permit my own IP addresses
$(wget -q4O- ipv4.icanhazip.com)/32 permit
postscreen_access.cidr
# Configure backup mail servers
if [ ${MYVEMAIL_BACKUPMX} ]
then
backupmx+=(${MYVEMAIL_BACKUPMX//,/ })
postconf -e "$(postconf mynetworks)$(printf ' %s/32' ${backupmx[@]})"
postconf -e "smtp_fallback_relay =$(printf ' [%s]:25' ${backupmx[@]})"
# Whitelist
for domain in ${backupmx[@]}
do
echo "${domain}/32 permit" >>/etc/postfix/postscreen_access.cidr
done
fi
# Whitelist
addmx=(${MYVEMAIL_DOMAIN})
addmx+=(${MYVEMAIL_ADDMX//,/ })
echo | tee /etc/postfix/{helo_access,rbl_override} >/dev/null
for domain in ${addmx[@]}
do
echo "${domain} OK" | tee -a /etc/postfix/{helo_access,rbl_override} >/dev/null
done
# Virtual mailboxes
sed -e "s/{{MYVEMAIL_POSTFIXADMIN_DBNAME}}/${MYVEMAIL_POSTFIXADMIN_DBNAME}/" \
-e "s/{{MYVEMAIL_POSTFIXADMIN_DBUSER}}/${MYVEMAIL_POSTFIXADMIN_DBUSER}/" \
-e "s/{{MYVEMAIL_POSTFIXADMIN_DBPASS}}/${MYVEMAIL_POSTFIXADMIN_DBPASS}/" \
-i /etc/postfix/sql/*.cf
# Permissions
setfacl -R -m u:postfix:rx /etc/postfix/sql/
# Start postfix
postfix start
postmap /etc/postfix/helo_access /etc/postfix/rbl_override /etc/postfix/smtp_header_checks /etc/postfix/header_checks /etc/postfix/body_checks /etc/postfix/postscreen_access.cidr