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

75 lines
2.3 KiB
Bash
Raw Normal View History

2024-08-09 12:50:33 +00:00
#!/usr/bin/env bash
# Postfix
echo ${MYVEMAIL_DOMAIN} >/etc/mailname
postconf -e "myhostname = ${MYVEMAIL_SUBDOMAIN}.${MYVEMAIL_DOMAIN}"
postconf -e "mydomain = ${MYVEMAIL_DOMAIN}"
# resolv.conf
[ -d /var/spool/postfix/etc/ ] || mkdir /var/spool/postfix/etc/
2024-08-09 12:50:33 +00:00
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
2024-08-09 12:50:33 +00:00
# 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
2024-08-09 12:50:33 +00:00
for domain in ${addmx[@]}
do
echo "${domain} OK" | tee -a /etc/postfix/helo_access >/dev/null
echo "/${domain}/ OK Primary and backup mail servers" | tee -a /etc/postfix/rbl_override >/dev/null
2024-08-09 12:50:33 +00:00
done
if [ ${MYVEMAIL_WHITELIST} ]
then
echo >>/etc/postfix/rbl_override
addwhitelist+=(${MYVEMAIL_WHITELIST//,/ })
for whitelist in ${addwhitelist[@]}
do
echo "/${whitelist}/ OK Whitelisted address" | tee -a /etc/postfix/rbl_override >/dev/null
done
fi
# Blacklist
if [ ${MYVEMAIL_BLACKLIST} ]
then
echo >>/etc/postfix/rbl_override
addblacklist+=(${MYVEMAIL_BLACKLIST//,/ })
for blacklist in ${addblacklist[@]}
do
echo "/${blacklist}/ REJECT Blacklisted address" | tee -a /etc/postfix/rbl_override >/dev/null
done
fi
2024-08-09 12:50:33 +00:00
# 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