Konfiguration now in directory 'conf'

This commit is contained in:
Christoph 2017-02-27 19:01:19 +01:00
parent ba580aea49
commit 6fd0270745
3 changed files with 256 additions and 293 deletions

3
.gitignore vendored Normal file
View File

@ -0,0 +1,3 @@
*.conf
dovecot*
log*

View File

@ -0,0 +1,109 @@
#!/usr/bin/env bash
## ===================================================================
## - Configuration File: Install/Update Dovecot Server
## ===================================================================
# ---
# --- Configure Settings for your Server here..
# ---
# - Set update=false if that is a new installation
# -
_update=false
# - Version dovecot
# -
_version=2.2.28
# - Version Pigeonhole
# -
_pigeonhole=dovecot-2.2-pigeonhole-0.4.16
# - postmaster_address
# -
# - Example:
# - postmaster_address="admin\@warenform.net"
# -
postmaster_address=""
# - hostname
# -
hostname=""
# - IPv4 / IPv6 Addressen
# -
ipv4=""
ipv6=""
# - Listener configuration
# -
imap_listener_adresses="127.0.0.1 $ipv4 $ipv6"
imaps_listener_adresses="$ipv4 $ipv6"
pop_listener_adresses="$ipv4 $ipv6"
pops_listener_adresses="$ipv4 $ipv6"
xmpp_listener=false
xmpp_listener_address="127.0.0.1"
xmpp_listener_port="4444"
# - Database settings
# -
# - Possible values for parameter database are only 'mysql' and 'postgres'
# -
# -
database=postgres
#database=mysql
dbname=postfix
dbuser=postfix
dbpassword=i""
dbhost=/var/run/postgresql
default_pass_scheme=PLAIN
# - Cert/Key configurations
# -
cert_base_dir="/etc/postfix/ssl"
server_cert=${cert_base_dir}/mailserver.crt
server_key=${cert_base_dir}/mailserver.key
imap_cert=${cert_base_dir}/mailserver.crt
imap_key=${cert_base_dir}/mailserver.key
pop_cert=${cert_base_dir}/mailserver.crt
pop_key=${cert_base_dir}/mailserver.key
# - Other settings
# -
spam_folder=Spam
max_userip_connections=24
#auth_mechanisms="plain login digest-md5 cram-md5"
auth_mechanisms="plain login digest-md5 cram-md5 apop"
# - Settings for quota warning sript
# -
from_address="warenform gbr <hilfe@kunden.warenform.net>"
reply_to="hilfe@kunden.warenform.net"
webmailer="https:\\webmail.initiativenserver.de"
salutation="Das WARENFORM-Team
#
#--
#WARENFORM | Phone: +49 30 / 61 65 17 52 -0
#Dresdner Str. 11 | Fax: +49 30 / 61 65 17 52 -66
#D-10999 Berlin | http://www.warenform.net"
# ---
# --- End server-specific Settings
# ---

View File

@ -1,291 +1,40 @@
#!/usr/bin/env bash
## -------------------------------------------------------------------
## ===================================================================
## - Install/Update Dovecot Server
## ===================================================================
## *************************************************** ##
## - rage.so36.net - ##
## -
#
### - Set update=false if that is a new installation
#_update=true
#
#_version=2.2.18
#_pigeonhole=dovecot-2.2-pigeonhole-0.4.8
#
#_src_base_dir=/usr/local/src/mailsystem
#_log_dir=${_src_base_dir}/log-dovecot-$_version
#
#postmaster_address="roots\@so36.net"
#hostname="rage.so36.net"
#
#ipv4="83.223.73.211"
#ipv6="2a01:30:1fff:fd00::211"
#
#imap_listener_adresses="127.0.0.1 $ipv4 $ipv6"
#imaps_listener_adresses="127.0.0.1 $ipv4 $ipv6"
#
#pop_listener_adresses="$ipv4 $ipv6"
#pops_listener_adresses="127.0.0.1 $ipv4 $ipv6"
#
#database=postgres
##database=mysql
#
#dbname=postfix
#dbuser=postfix
#dbpassword=9jKqFHNGrgFb
#dbhost=/var/run/postgresql
#
#default_pass_scheme=CRYPT
#
#cert_base_dir="/etc/postfix/ssl"
#server_cert=${cert_base_dir}/mailserver.crt
#server_key=${cert_base_dir}/mailserver.key
#
#imap_cert=${cert_base_dir}/imap.crt
#imap_key=${cert_base_dir}/imap.key
#
#pop_cert=${cert_base_dir}/pop.crt
#pop_key=${cert_base_dir}/pop.key
#
#spam_folder=Spam
#
#xmpp_listener=true
#xmpp_listener_address="127.0.0.1"
#xmpp_listener_port="4444"
#
#max_userip_connections=24
##auth_mechanisms="plain login digest-md5 cram-md5"
#auth_mechanisms="plain login"
#
## quota warning sript
#from_address="so36.net <info@so36.net>"
#reply_to="support@so36.net"
#webmailer="https:\\webmail.so36.net"
#salutation="so36.NET"
## -
## - rage.so36.net - ##
## *************************************************** ##
## *************************************************** ##
## - a.mx.oopen.de - ##
## -
## - Set update=false if that is a new installation
#_update=true
#
#_version=2.2.18
#_pigeonhole=dovecot-2.2-pigeonhole-0.4.8
#
#_src_base_dir=/usr/local/src/mailsystem
#_log_dir=${_src_base_dir}/log-dovecot-$_version
#
#postmaster_address="admin\@oopen.de"
#hostname="a.mx.oopen.de"
#
#ipv4="83.223.85.164"
#ipv6="2a01:30:1fff:9::164"
#
#imap_listener_adresses="127.0.0.1 $ipv4 $ipv6"
#imaps_listener_adresses="$ipv4 $ipv6"
#
#pop_listener_adresses="$ipv4 $ipv6"
#pops_listener_adresses="$ipv4 $ipv6"
#
#database=postgres
##database=mysql
#
#dbname=postfix
#dbuser=postfix
#dbpassword=FKt4z55FxMZp
#dbhost=/var/run/postgresql
#
#default_pass_scheme=PLAIN
#
#cert_base_dir="/etc/postfix/ssl"
#server_cert=${cert_base_dir}/mailserver.crt
#server_key=${cert_base_dir}/mailserver.key
#
#imap_cert=${cert_base_dir}/imap.crt
#imap_key=${cert_base_dir}/imap.key
#
#pop_cert=${cert_base_dir}/pop.crt
#pop_key=${cert_base_dir}/pop.key
#
#spam_folder=Spam
#
#xmpp_listener=false
#xmpp_listener_address="127.0.0.1"
#xmpp_listener_port="4444"
#
#max_userip_connections=24
##auth_mechanisms="plain login digest-md5 cram-md5"
#auth_mechanisms="plain login digest-md5 cram-md5 apop"
#
## quota warning sript
#from_address="o.open <oo@oopen.de>"
#reply_to="oo@oopen.de"
#webmailer="https:\\webmail.oopen.de"
#salutation="O.OPEN
#
#--
#O.OPEN | Phone: +49 30 / 290 484 91
#Erkelenzdamm 21 | Fax: +49 30 / 290 484 99
#D-10999 Berlin | http://oopen.de"
## -
## - a.mx.oopen.de - ##
## *************************************************** ##
## *************************************************** ##
## - c.mx.oopen.de - ##
## -
## - Set update=false if that is a new installation
#_update=true
#
#_version=2.2.18
#_pigeonhole=dovecot-2.2-pigeonhole-0.4.8
#
#_src_base_dir=/usr/local/src/mailsystem
#_log_dir=${_src_base_dir}/log-dovecot-$_version
#
#postmaster_address="admin\@oopen.de"
#hostname="c.mx.oopen.de"
#
#ipv4="83.223.85.101"
#ipv6="2a01:30:1fff:3::101"
#
#imap_listener_adresses="127.0.0.1 $ipv4 $ipv6"
#imaps_listener_adresses="$ipv4 $ipv6"
#
#pop_listener_adresses="$ipv4 $ipv6"
#pops_listener_adresses="$ipv4 $ipv6"
#
##database=postgres
#database=mysql
#
#dbname=postfix
#dbuser=postfix
#dbpassword=AeB4kohyie5rahJ7
#dbhost=/tmp/mysqld.sock
#
#default_pass_scheme=PLAIN
#
#cert_base_dir="/etc/postfix/ssl"
#server_cert=${cert_base_dir}/mail.initiativenserver.crt
#server_key=${cert_base_dir}/mail.initiativenserver.key
#
#imap_cert=${cert_base_dir}/mail.initiativenserver.crt
#imap_key=${cert_base_dir}/mail.initiativenserver.key
#
#pop_cert=${cert_base_dir}/mail.initiativenserver.crt
#pop_key=${cert_base_dir}/mail.initiativenserver.key
#
#spam_folder=Junk
#
#xmpp_listener=false
#xmpp_listener_address="127.0.0.1"
#xmpp_listener_port="4444"
#
#max_userip_connections=24
##auth_mechanisms="plain login digest-md5 cram-md5"
#auth_mechanisms="plain login digest-md5 cram-md5 apop"
#
## quota warning sript
#from_address="Initiativenserver <kontakt@initiativenserver.de>"
#reply_to="kontakt@initiativenserver.de"
#webmailer="https:\\webmail.initiativenserver.de"
#salutation="Aktionsbündnis gegen Gewalt, Rechtsextremismus und Fremdenfeindlichkeit
#
#--
#Initiativenserver | phone: 0331 505824-28
#Mittelstraße 38/39 | fax: 0331 505824-29
#14467 Potsdam | email: kontakt@initiativenserver.de"
## -
## - c.mx.oopen.de - ##
## *************************************************** ##
## *************************************************** ##
## - mx.warenform.de - ##
## -
## - Set update=false if that is a new installation
#_update=true
#
#_version=2.2.13
#_pigeonhole=dovecot-2.2-pigeonhole-0.4.3
#
#_src_base_dir=/usr/local/src/mailsystem
#_log_dir=${_src_base_dir}/log-dovecot-$_version
#
#postmaster_address="admin\@warenform.net"
#hostname="mx.warenform.de"
#
#ipv4="83.223.85.151"
#ipv6="2a01:30:1fff:6::151"
#
#imap_listener_adresses="127.0.0.1 $ipv4 $ipv6"
#imaps_listener_adresses="$ipv4 $ipv6"
#
#pop_listener_adresses="$ipv4 $ipv6"
#pops_listener_adresses="$ipv4 $ipv6"
#
#database=postgres
##database=mysql
#
#dbname=postfix
#dbuser=postfix
#dbpassword=CbX8vg347Vvm
#dbhost=/var/run/postgresql
#
#default_pass_scheme=PLAIN
#
#cert_base_dir="/etc/postfix/ssl"
#server_cert=${cert_base_dir}/servercert.pem
#server_key=${cert_base_dir}/servercert.pem
#
#imap_cert=${cert_base_dir}/imap_warenform_de.crt
#imap_key=${cert_base_dir}/imap_warenform_de.key
#
#pop_cert=${cert_base_dir}/pop_warenform_de.crt
#pop_key=${cert_base_dir}/pop_warenform_de.key
#
#spam_folder=Spam
#
#xmpp_listener=false
#xmpp_listener_address="127.0.0.1"
#xmpp_listener_port="4444"
#
#max_userip_connections=24
##auth_mechanisms="plain login digest-md5 cram-md5"
#auth_mechanisms="plain login digest-md5 cram-md5 apop"
#
## quota warning sript
#from_address="warenform gbr <hilfe@kunden.warenform.net>"
#reply_to="hilfe@kunden.warenform.net"
#webmailer="https:\\webmail.initiativenserver.de"
#salutation="Das WARENFORM-Team
#
#--
#WARENFORM | Phone: +49 30 / 61 65 17 52 -0
#Dresdner Str. 11 | Fax: +49 30 / 61 65 17 52 -66
#D-10999 Berlin | http://www.warenform.net"
## -
## - mx.warenform.de - ##
## *************************************************** ##
## -----------------------------------------------------------------
## ----------------------------------------------------------------
## ---
## --- For configurations see file conf/install_update_dovecot.conf
## ---
## --- Dont make changes here!
## ---
## -----------------------------------------------------------------
## -----------------------------------------------------------------
# -------------
# - Settings
# -------------
_src_base_dir="$(realpath $(dirname $0))"
conf_file="${_src_base_dir}/conf/install_update_dovecot.conf"
curdir=`pwd`
log_file="$(mktemp)"
rc_done="\033[71G[ \033[32mdone\033[m ]"
rc_failed="\033[71G[ \033[31m\033[1mfailed\033[m ]"
rc_skipped="\033[71G[ \033[33m\033[1mskipped\033[m ]"
# -------------
# - Functions an Variable
# -------------
## *************************************************** ##
## - functions - ##
## -
echononl(){
echo X\\c > /tmp/shprompt$$
if [ `wc -c /tmp/shprompt$$ | awk '{print $1}'` -eq 1 ]; then
@ -298,13 +47,37 @@ echononl(){
fatal(){
echo ""
echo Fehler: $*
echo -e "\n\t\033[31m\033[1mSkript wird abgebrochen\033[m\033[m\n"
echo -e "\t[ \033[31m\033[1mFatal\033[m ]: \033[37m\033[1m$*\033[m"
echo ""
echo -e "\t\033[31m\033[1m Skript wird abgebrochen\033[m\033[m\n"
rm -f $log_file
exit 1
}
## -
## - Ende: functions - ##
## *************************************************** ##
error(){
echo ""
echo -e "\t[ \033[31m\033[1mError\033[m ]: $*"
echo ""
}
echo
echononl "\tInclude Configuration file.."
if [[ ! -f $conf_file ]]; then
echo -e "$rc_failed"
fatal "Missing configuration file '$conf_file'"
else
source $conf_file
echo -e "$rc_done"
fi
_log_dir=${_src_base_dir}/log-dovecot-$_version
# -------------
# - List Script Configurations
# -------------
clear;
@ -371,7 +144,13 @@ do
read OK
done
[ $OK = "Yes" -o $OK = "yes" -o "$OK" = "ja" -o "$OK" = "Ja" ] || fatal Edit basename $0 and correct variables
[ $OK = "Yes" -o $OK = "yes" -o "$OK" = "ja" -o "$OK" = "Ja" ] || fatal "Edit '$(basename $conf_file)' and correct variables"
# -------------
# - Begin Install/Update
# -------------
echo ""
@ -446,14 +225,15 @@ mkdir -p $_log_dir
## -----------------
## --- Download
cd ${_src_base_dir}/tarballs
cd ${_src_base_dir}
echo "Download sources.."
## - Downloud Dovecot 2.2.x
## -
echononl "\tDownload dovecot-${_version}.tar.gz"
if [ ! -f "${_src_base_dir}/tarballs/dovecot-${_version}.tar.gz" ]; then
#if [ ! -f "${_src_base_dir}/tarballs/dovecot-${_version}.tar.gz" ]; then
if [ ! -f "${_src_base_dir}/dovecot-${_version}.tar.gz" ]; then
wget http://www.dovecot.org/releases/2.2/dovecot-${_version}.tar.gz > /dev/null 2>&1
if [ "$?" = 0 ]; then
echo -e "$rc_done"
@ -469,7 +249,8 @@ fi
## - Download Pigeonhole for Dovecot v2.2
## -
echononl "\tDownload ${_pigeonhole}.tar.gz.."
if [ ! -f "${_src_base_dir}/tarballs/${_pigeonhole}.tar.gz" ]; then
#if [ ! -f "${_src_base_dir}/tarballs/${_pigeonhole}.tar.gz" ]; then
if [ ! -f "${_src_base_dir}/${_pigeonhole}.tar.gz" ]; then
wget http://pigeonhole.dovecot.org/releases/2.2/${_pigeonhole}.tar.gz > /dev/null 2>&1
if [ "$?" = 0 ]; then
echo -e "$rc_done"
@ -584,7 +365,8 @@ echo "Installing Base System.."
cd ${_src_base_dir}
echononl "\tUnpack dovecot-${_version}.tar.gz.."
tar -xzf tarballs/dovecot-${_version}.tar.gz > /dev/null
#tar -xzf tarballs/dovecot-${_version}.tar.gz > /dev/null
tar -xzf dovecot-${_version}.tar.gz > /dev/null
if [ "$?" = 0 ]; then
echo -e "$rc_done"
else
@ -669,7 +451,8 @@ fi
cd ${_src_base_dir}
echo ""
echononl "\tExtracting ${_pigeonhole}.tar.gz.."
gunzip < tarballs/${_pigeonhole}.tar.gz | tar -xf -
#gunzip < tarballs/${_pigeonhole}.tar.gz | tar -xf -
gunzip < ${_pigeonhole}.tar.gz | tar -xf -
if [ "$?" = 0 ]; then
echo -e "$rc_done"
else
@ -989,6 +772,8 @@ fi
## - default_process_limit = 200
## - default_client_limit = 2000
## -
## - default_vsz_limit = 512M
## -
## - !! Bemerkung
## - Das Hochsetzen des default_client_limit Parameters auf einen Wert größer
## - als 1024 geht nur dann wenn auch die Anzahl der zulässigen "open files"
@ -1059,6 +844,7 @@ fi
## - }
## - }
## -
_failed=false
echononl "\tAdjusting file 10-master.conf.."
perl -i.ORIG -n -p -e "s#^([ ]*)(unix_listener\ +auth-userdb.*)#\1\2\n\1 mode = 0666\n\1 user = dovecot\n\1 group = dovecot#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-master.conf || _failed=true
@ -1087,6 +873,10 @@ perl -i -n -p -e "s#^([ ]*\#?[ ]*)(default_process_limit.*)#\1\2\ndefault_proces
perl -i -n -p -e "s#^([ ]*\#?[ ]*)(default_client_limit.*)#\1\2\ndefault_client_limit = 2000#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-master.conf || _failed=true
perl -i -n -p -e "s#^([ ]*\#?[ ]*)(default_vsz_limit.*)#\1\2\ndefault_vsz_limit = 512M#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-master.conf || _failed=true
if ! $_failed ; then
echo -e "$rc_done"
else
@ -1120,6 +910,7 @@ fi
## - # ssl_key = <$pop_key
## - #}
## -
_failed=false
echononl "\tAdjusting file 10-ssl.conf.."
perl -i.ORIG -n -p -e "s#^([ ]*)(ssl_cert\ ?=.*)#\1\#\# \2\n\1ssl_cert = <$server_cert#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-ssl.conf || _failed=true
@ -1160,6 +951,7 @@ fi
## - auth_socket_path = /var/run/dovecot/auth-userdb
## - mail_plugins = quota expire
## -
_failed=false
echononl "\tAdjusting file 10-mail.conf"
perl -i.ORIG -n -p -e "s#^([ ]*)\#?\ ?(mail_location\ +=.*)#\1\#\# \2\n\1mail_location = maildir:/var/vmail/%d/%n/Maildir#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf || _failed=true
@ -1191,12 +983,51 @@ perl -i -n -p -e "s#^([ ]*)\#?\ ?(mail_plugins\ +=.*)#\1\#\# \2\n\1mail_plugins
## - ..
## - }
## -
perl -i -n -p -e "s#^([ ]*)(namespace\ +inbox\ +{\ *)#\1\#\#\ \2#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf || _failed=true
perl -i -n -p -e "s#^([ ]*)(inbox\ +=\ +yes\ *)#\1\#\#\ \2#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf || _failed=true
perl -i -n -p -e "s#^([ ]*)(}\ *)#\1\#\#\ \2#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf || _failed=true
_failed=false
_found=false
_tmp_file="$(mktemp)"
> $_tmp_file
while IFS='' read -r _line || [[ -n $_line ]] ; do
if echo "$_line" | grep -i -E "^\s*namespace\s+inbox\s+" > /dev/null 2>&1 ; then
echo "found!"
echo "## $_line" >> $_tmp_file
_found=true
continue
fi
if $_found && echo "$_line" | grep -i -E "^\s*}" > /dev/null 2>&1 ; then
echo "## $_line" >> $_tmp_file
_found=false
continue
fi
if $_found ; then
echo "## $_line" >> $_tmp_file
else
echo "$_line" >> $_tmp_file
fi
done < "/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf"
if [[ "$?" != "0" ]] ; then
_failed=true
fi
mv /usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf.ORIG
if [[ "$?" != "0" ]] ; then
_failed=true
fi
mv $_tmp_file /usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf
if [[ "$?" != "0" ]] ; then
_failed=true
fi
#perl -i -n -p -e "s#^([ ]*)(namespace\ +inbox\ +{\ *)#\1\#\#\ \2#g" \
# /usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf || _failed=true
#perl -i -n -p -e "s#^([ ]*)(inbox\ +=\ +yes\ *)#\1\#\#\ \2#g" \
# /usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf || _failed=true
#perl -i -n -p -e "s#^([ ]*)(}\ *)#\1\#\#\ \2#g" \
# /usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf || _failed=true
if ! $_failed ; then
echo -e "$rc_done"
@ -1295,6 +1126,7 @@ fi
## - special_use = \Junk
## - }
## -
_failed=false
echononl "\tAdjusting file 15-mailboxes.conf"
if [ "$spam_folder" != "Junk" ]; then
perl -i.ORIG -n -p -e "s#^([ ]*)(mailbox\ +Junk\ +{.*)#\1mailbox $spam_folder {\n\1 auto = subscribe\n\1 special_use = \\\Junk\n\1}\n\1\2#g" \
@ -1325,6 +1157,7 @@ fi
## - !include auth-sql.conf.ext # comment all other includes
## - auth_username_translation = "%@"
## -
_failed=false
echononl "\tAdjusting file 10-auth.conf"
perl -i.ORIG -n -p -e "s#^([ ]*)\#?\ ?(disable_plaintext_auth\ +=.*)#\1\#\# \2\n\1disable_plaintext_auth = no#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-auth.conf || _failed=true
@ -1460,6 +1293,7 @@ fi
## - :msg,contains,"stored mail into mailbox"\
## - -/var/log/dovecot.lmtp
## -
_failed=false
echononl "\tAdjusting file 10-logging.conf"
perl -i.ORIG -n -p -e "s#^([ ]*)\#?\ ?(log_path\ ?=.*)#\1\#\# \2\n\1log_path = syslog#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-logging.conf || _failed=true
@ -1555,6 +1389,7 @@ fi
## - lda_mailbox_autocreate = no
## - mail_plugins = $mail_plugins sieve
## -
_failed=false
echononl "\tAdjusting file 15-lda.conf"
perl -i.ORIG -n -p -e "s#^([ ]*)\#?\ ?(postmaster_address\ +=.*)#\1\#\# \2\n\1postmaster_address = $postmaster_address#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/15-lda.conf || _failed=true
@ -1579,6 +1414,7 @@ fi
## - lmtp_save_to_detail_mailbox = no
## - mail_plugins = $mail_plugins sieve
## -
_failed=false
echononl "\tAdjusting file 20-lmtp.conf"
perl -i.ORIG -n -p -e "s#^([ ]*)\#?\ ?(lmtp_save_to_detail_mailbox\ +=.*)#\1\#\# \2\n\1lmtp_save_to_detail_mailbox = no#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/20-lmtp.conf || _failed=true
@ -1601,6 +1437,7 @@ fi
## - mail_plugins = $mail_plugins imap_quota
## - imap_client_workarounds = delay-newmail
## -
_failed=false
echononl "\tAdjusting file 20-imap.conf"
perl -i.ORIG -n -p -e "s#^([ ]*)\#?\ ?(protocol imap {)#\1\2\n\n\1 ssl_cert = <$imap_cert\n\1 ssl_key = <$imap_key\n#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/20-imap.conf || _failed=true
@ -1626,6 +1463,7 @@ fi
## - mail_max_userip_connections = 10
## - pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
## -
_failed=false
echononl "\tAdjusting file 20-pop3.conf"
perl -i.ORIG -n -p -e "s#^([ ]*)\#?\ ?(protocol pop3 {)#\1\2\n\n\1 ssl_cert = <$pop_cert\n\1 ssl_key = <$pop_key\n#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/20-pop3.conf || _failed=true
@ -1660,6 +1498,7 @@ fi
## - expire2 = Trash.*
## - expire3 = $spam_folder
## -
_failed=false
echononl "\tAdjusting file 90-plugin.conf"
perl -i.ORIG -n -p -e "s#^([ ]*)(\#?\ ?setting_name\ +=.*)#\1\2\n\n\1autocreate = $spam_folder\n\1autocreate2 = Sent\n\1autocreate3 = Trash\n\1autocreate4 = Drafts\n\n\1autosubscribe = $spam_folder\n\1autosubscribe2 = Sent\n\1autosubscribe3 = Trash\n\1autosubscribe4 = Drafts\n\n\1expire_dict = proxy::expire\n\n\1expire = Trash\n\1expire2 = Trash.*\n\1expire3 = $spam_folder\n#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/90-plugin.conf || _failed=true
@ -1681,6 +1520,7 @@ fi
## - sieve_global = /usr/local/dovecot/etc/dovecot/sieve/global/
## - recipient_delimiter =
## -
_failed=false
echononl "\tAdjusting file 90-sieve.conf"
perl -i.ORIG -n -p -e "s#^([ ]*)\#?\ ?(sieve\ ?=.*)#\1\#\# \2\n\1sieve = ~/.dovecot.sieve#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/90-sieve.conf || _failed=true
@ -1728,13 +1568,13 @@ fi
echononl "\tPrecompile global sieve script"
cd /usr/local/dovecot-${_version}/etc/dovecot/sieve/
/usr/local/dovecot-${_version}/bin/sievec \
/usr/local/dovecot-${_version}/etc/dovecot/sieve/move-spam.sieve > /dev/null 2>&1
/usr/local/dovecot-${_version}/etc/dovecot/sieve/move-spam.sieve > $log_file 2>&1
if [ "$?" = 0 ]; then
echo -e "$rc_done"
else
echo -e "$rc_failed"
fatal "Precompiling sieve script failed"
error "$(cat $log_file)"
fi
@ -2002,6 +1842,7 @@ EOF
## -
## - permit_sasl_authenticated,
## -
_failed=false
echononl "\tAdjust /etc/postfix/main.cf"
perl -i.`date +%Y-%m-%d-%H%M` -n -p -e "s#^(\s*)(virtual_transport\ *=.*)#\1\#\2\n\1virtual_transport = dovecot\ndovecot_destination_recipient_limit = 1#" \
/etc/postfix/main.cf || _failed=true
@ -2049,6 +1890,7 @@ echo -e "Change (from lda) to lmtp-service"
## -
## - add "lmtp" to protocols
## -
_failed=false
echononl "\tAdd lmtp to protocols (dovecot.conf)"
perl -i -n -p -e "s#^([ ]*)(protocols\ +=\ +.*)#\1\2 lmtp#" \
/usr/local/dovecot-${_version}/etc/dovecot/dovecot.conf || _failed=true
@ -2089,6 +1931,7 @@ if $_new ; then
## -
## - add:
## - virtual_transport = lmtp:unix:private/dovecot-lmtp
_failed=false
echononl "\tAdjust /etc/postfix/main.cf"
perl -i -n -p -e "s#^(\s*)(virtual_transport\ *=.*)#\1\#\2\n\1virtual_transport = lmtp:unix:private/dovecot-lmtp#" \
/etc/postfix/main.cf || _failed=true
@ -2149,6 +1992,7 @@ echo -e "Configure quota support for dovecot"
## - }
## - }
## -
_failed=false
echononl "\tConfigure dict service (10-master.conf)"
perl -i -n -p -e "s#^([ ]*)(unix_listener\ +dict.*)#\1\2\n\1 mode = 0600\n\1 user = vmail#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-master.conf || _failed=true
@ -2166,6 +2010,7 @@ fi
## - dict {
## - quota = $db_driver:/usr/local/dovecot/etc/dovecot/sql-dict.conf.ext
## - }
_failed=false
echononl "\tAdjust file dovecot.conf for (dict) quota service"
perl -i -n -p -e "s#^([ ]*)(dict\ +{.*)#\1\2\n\1 quota = $db_driver:/usr/local/dovecot/etc/dovecot/sql-dict.conf.ext#g" \
/usr/local/dovecot-${_version}/etc/dovecot/dovecot.conf || _failed=true
@ -2695,6 +2540,7 @@ fi
## -
## - mail_plugins = $mail_plugins imap_quota imap_acl
## -
_failed=false
echononl "\tAdd mail_plugin imap_acl to 20-imap.conf"
perl -i -n -p -e "s#^([ ]*)\#?\ ?(mail_plugins\ +=.*)#\1\#\# \2\n\1mail_plugins = \\\$mail_plugins imap_quota imap_acl#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/20-imap.conf || _failed=true
@ -2709,6 +2555,7 @@ fi
## -
## - mail_plugins = quota expire acl
## -
_failed=false
echononl "\tAdd mail_plugin acl to 10-mail.conf"
perl -i -n -p -e "s#^([ ]*)\#?\ ?(mail_plugins\ +=.*)#\1\#\# \2\n\1mail_plugins = quota expire acl#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/10-mail.conf || _failed=true
@ -2774,6 +2621,7 @@ fi
## - acl_shared_dict = proxy::acl
## - }
## -
_failed=false
echononl "\tConfigure acl (90-acl.conf)"
perl -i.ORIG -n -p -e "s#^([ ]*)\#?\ ?(acl\ +=.*)#\1\#\# \2\n\n\1\# Without global ACLs:\n\1acl = vfile\n\n\1\# With global ACLs in /etc/dovecot/acls/ directory:\n\1\#acl = vfile:/etc/dovecot/acls\n\1\#acl = vfile:/etc/dovecot/acls:cache_secs=300#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/90-acl.conf || _failed=true
@ -2793,6 +2641,7 @@ fi
## - ...
## - }
## -
_failed=false
echononl "\tAdjust file dovecot.conf for (dict) acl service"
perl -i -n -p -e "s#^([ ]*)(dict\ +{.*)#\1\2\n\1 acl = $db_driver:/usr/local/dovecot/etc/dovecot/sql-dict.conf.ext#g" \
/usr/local/dovecot-${_version}/etc/dovecot/dovecot.conf || _failed=true
@ -3163,6 +3012,7 @@ fi
## - ..
## - }
## -
_failed=false
echononl "\tConfigure managesieve 20-managesieve.conf"
perl -i.ORIG -n -p -e "s#^([ ]*)\#?\ ?(service managesieve-login\ +{.*)#\1service managesieve-login {#g" \
/usr/local/dovecot-${_version}/etc/dovecot/conf.d/20-managesieve.conf || _failed=true
@ -3243,4 +3093,5 @@ VServer Root System:
"
echo ""
rm -f "$log_file"
exit