#!/bin/bash # Update hostname if given if [ -f /mail_settings/myhostname ]; then sed -i -e "s/myhostname = localhost/myhostname = $(sed 's:/:\\/:g' /mail_settings/myhostname)/" /etc/postfix/main.cf echo $(sed 's:/:\\/:g' /mail_settings/myhostname) > /etc/mailname fi # Configure mail delivery to dovecot cp /mail_settings/aliases /etc/postfix/virtual cp /mail_settings/domains /etc/postfix/virtual-mailbox-domains # Parse mailbox settings mkdir -p /etc/postfix/tmp awk < /etc/postfix/virtual '{ print $2 }' > /etc/postfix/tmp/virtual-receivers sed -r 's,(.+)@(.+),\2/\1/,' /etc/postfix/tmp/virtual-receivers > /etc/postfix/tmp/virtual-receiver-folders paste /etc/postfix/tmp/virtual-receivers /etc/postfix/tmp/virtual-receiver-folders > /etc/postfix/virtual-mailbox-maps # Give postfix ownership of its files chown -R postfix:postfix /etc/postfix # Map virtual aliases and user/filesystem mappings postmap /etc/postfix/virtual postmap /etc/postfix/virtual-mailbox-maps chown -R postfix:postfix /etc/postfix # add global sieve script mkdir -p /vmail/sieve && cp /mail_settings/spam-global.sieve /vmail/sieve/ # Make user vmail own all mail folders chown -R vmail:vmail /vmail chmod u+w /vmail # Add password file cp /mail_settings/passwords /etc/dovecot/passwd # set mynetworks sed -i \ -e "s#^mynetworks = .*#mynetworks = $(cat /mail_settings/postfix-networks | tr -d '\n')#" \ /etc/postfix/main.cf # Run boot scripts for SCRIPT in /boot.d/* do if [ -f "$SCRIPT" -a -x "$SCRIPT" ]; then "$SCRIPT" fi done