58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# Check if we have SSL certificates in config, otherwise copy it there
 | 
						|
# First the key file
 | 
						|
if [ -f /mail_settings/ssl-cert-snakeoil.key ]; then
 | 
						|
	cp /mail_settings/ssl-cert-snakeoil.key /etc/ssl/private/ssl-cert-snakeoil.key
 | 
						|
else
 | 
						|
	cp /etc/ssl/private/ssl-cert-snakeoil.key /mail_settings/ssl-cert-snakeoil.key
 | 
						|
fi
 | 
						|
 | 
						|
# Then the pem file
 | 
						|
if [ -f /mail_settings/ssl-cert-snakeoil.pem ]; then
 | 
						|
	cp /mail_settings/ssl-cert-snakeoil.pem /etc/ssl/certs/ssl-cert-snakeoil.pem
 | 
						|
else
 | 
						|
	cp /etc/ssl/certs/ssl-cert-snakeoil.pem /mail_settings/ssl-cert-snakeoil.pem
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
# 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 /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
 | 
						|
 | 
						|
# 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
 | 
						|
 | 
						|
 | 
						|
# Run boot scripts
 | 
						|
for SCRIPT in /boot.d/*
 | 
						|
do
 | 
						|
  if [ -f "$SCRIPT" -a -x "$SCRIPT" ]; then
 | 
						|
    "$SCRIPT"
 | 
						|
  fi
 | 
						|
done
 |