#!/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/ 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 >/dev/null echo "/${domain}/ OK" | tee -a /etc/postfix/rbl_override >/dev/null done if [ ${MYVEMAIL_WHITELIST} ] then echo >>/etc/postfix/rbl_override addwhitelist+=(${MYVEMAIL_WHITELIST//,/ }) for whitelist in ${addwhitelist[@]} do echo "/${whitelist}/ OK" | 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" | tee -a /etc/postfix/rbl_override >/dev/null done fi # 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