50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/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
 |