diff --git a/install_update_dovecot.sh b/install_update_dovecot.sh index 30c1069..f67b1ff 100755 --- a/install_update_dovecot.sh +++ b/install_update_dovecot.sh @@ -2318,7 +2318,70 @@ else fatal "Adjusting /usr/local/dovecot-${_version}/etc/dovecot/conf.d/90-sieve.conf" fi -mkdir -p /usr/local/dovecot-${_version}/etc/dovecot/sieve/global/ +# - Add Setting from Pigeonhole Sieve: Vacation Extension +# - +echononl "\tAdd Setting for included Pigeonhole Sieve: Vacation Extension" +_found=false +_tmp_file="/tmp/dovecot_conf_90-sieve.conf" +cp -a "/usr/local/dovecot-${_version}/etc/dovecot/conf.d/90-sieve.conf" "$_tmp_file" > /dev/null 2>&1 +:> $_tmp_file +while IFS='' read -r _line || [[ -n $_line ]] ; do + + echo "$_line" >> "$_tmp_file" + + if ! $_found && $(echo "$_line" | grep -i -E "^\s*plugin {" > /dev/null 2>&1) ; then + _found=true + + cat <> "$_tmp_file" + + # Add Setting 'sieve_vacation_send_from_recipient' from (included) + # + # Pigeonhole Sieve: Vacation Extension + # ==================================== + # + # sieve_vacation_send_from_recipient + # + # Default: no + # + # Values: Boolean + # + # This setting determines whether vacation messages are sent with the + # SMTP MAIL FROM envelope address set to the recipient address of the + # Sieve script owner. + # + # Normally this is set to <>, which is the default as recommended in the + # specification. This is meant to prevent mail loops. However, there are + # situations for which a valid sender address is required and this setting + # can be used to accommodate for those. + # + sieve_vacation_send_from_recipient = yes + +EOF + fi +done < "/usr/local/dovecot-${_version}/etc/dovecot/conf.d/90-sieve.conf" +cp -a "$_tmp_file" "/usr/local/dovecot-${_version}/etc/dovecot/conf.d/90-sieve.conf" > /dev/null 2>&1 +echo -e "$rc_done" + + +echononl "\tCreate Directory for global sieve scripts" +mkdir -p "/usr/local/dovecot-${_version}/etc/dovecot/sieve/global/" > $log_file 2>&1 +if [ "$?" = 0 ]; then + echo -e "$rc_done" +else + echo -e "$rc_failed" + error "$(cat $log_file)" + + echononl "\tcontinue anyway [yes/no]: " + read OK + OK="$(echo "$OK" | tr '[:upper:]' '[:lower:]')" + while [[ "$OK" != "yes" ]] && [[ "$OK" != "no" ]] ; do + echononl "Wrong entry! - repeat [yes/no]: " + read OK + done + [[ $OK = "yes" ]] || fatal "Abbruch durch User" + +fi + ## - ceate global sieve script ## -