From 2ac72e00fb914eee6632ee0937782ceede89ee4f Mon Sep 17 00:00:00 2001 From: myvesta <38690722+myvesta@users.noreply.github.com> Date: Thu, 30 Sep 2021 11:02:23 +0200 Subject: [PATCH] Fix Autoreply issue with Exim 4.94+ --- bin/v-add-mail-account | 2 ++ bin/v-add-mail-domain | 2 ++ bin/v-delete-mail-account | 1 + func/rebuild.sh | 6 ++++++ install/debian/11/exim/exim4.conf.template | 4 ++-- install/vst-install-debian.sh | 1 + src/deb/vesta/postinst | 11 +++++++++++ 7 files changed, 25 insertions(+), 2 deletions(-) diff --git a/bin/v-add-mail-account b/bin/v-add-mail-account index 1675d5d7..81da9e71 100755 --- a/bin/v-add-mail-account +++ b/bin/v-add-mail-account @@ -61,6 +61,8 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then fi str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota" echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd + userstr="$account:$account:$user:mail:$HOMEDIR/$user" + echo $userstr >> $HOMEDIR/$user/conf/mail/$domain/accounts fi # Create mail account folder (mailbox) diff --git a/bin/v-add-mail-domain b/bin/v-add-mail-domain index 7c9dbc36..c26dadb2 100755 --- a/bin/v-add-mail-domain +++ b/bin/v-add-mail-domain @@ -91,6 +91,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then touch $HOMEDIR/$user/conf/mail/$domain/aliases touch $HOMEDIR/$user/conf/mail/$domain/passwd touch $HOMEDIR/$user/conf/mail/$domain/fwd_only + touch $HOMEDIR/$user/conf/mail/$domain/accounts ln -s $HOMEDIR/$user/conf/mail/$domain \ /etc/$MAIL_SYSTEM/domains/$domain_idn @@ -119,6 +120,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then # Set ownership chown -R $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd + chown $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/accounts chown $user:mail $HOMEDIR/$user/mail/$domain_idn fi diff --git a/bin/v-delete-mail-account b/bin/v-delete-mail-account index f0da423c..09c41b50 100755 --- a/bin/v-delete-mail-account +++ b/bin/v-delete-mail-account @@ -53,6 +53,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then sed -i "/^$account@$domain_idn:/d" $HOMEDIR/$user/conf/mail/$domain/aliases sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd + sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/accounts rm -rf $HOMEDIR/$user/mail/$domain/$account fi diff --git a/func/rebuild.sh b/func/rebuild.sh index b4df3d20..bf04dda0 100644 --- a/func/rebuild.sh +++ b/func/rebuild.sh @@ -445,9 +445,12 @@ rebuild_mail_domain_conf() { rm -f $HOMEDIR/$user/conf/mail/$domain/protection rm -f $HOMEDIR/$user/conf/mail/$domain/passwd rm -f $HOMEDIR/$user/conf/mail/$domain/fwd_only + rm -f $HOMEDIR/$user/conf/mail/$domain/accounts + touch $HOMEDIR/$user/conf/mail/$domain/aliases touch $HOMEDIR/$user/conf/mail/$domain/passwd touch $HOMEDIR/$user/conf/mail/$domain/fwd_only + touch $HOMEDIR/$user/conf/mail/$domain/accounts # Adding antispam protection if [ "$ANTISPAM" = 'yes' ]; then @@ -506,6 +509,8 @@ rebuild_mail_domain_conf() { fi str="$account:$MD5:$user:mail::$HOMEDIR/$user:$QUOTA" echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd + userstr="$account:$account:$user:mail:$HOMEDIR/$user" + echo $userstr >> $HOMEDIR/$user/conf/mail/$domain/accounts for malias in ${ALIAS//,/ }; do echo "$malias@$domain_idn:$account@$domain_idn" >> $dom_aliases done @@ -527,6 +532,7 @@ rebuild_mail_domain_conf() { chmod 770 $HOMEDIR/$user/mail/$domain_idn chown -R $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd + chown $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/accounts chown $user:mail $HOMEDIR/$user/mail/$domain_idn fi diff --git a/install/debian/11/exim/exim4.conf.template b/install/debian/11/exim/exim4.conf.template index 977dc661..d8bca393 100644 --- a/install/debian/11/exim/exim4.conf.template +++ b/install/debian/11/exim/exim4.conf.template @@ -381,8 +381,8 @@ address_reply: userautoreply: driver = autoreply - file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}.msg - from = "${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}" + file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}.msg + from = "${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}" headers = Content-Type: text/plain; charset=utf-8;\nContent-Transfer-Encoding: 8bit subject = "${if def:h_Subject: {Autoreply: \"${rfc2047:$h_Subject:}\"} {Autoreply Message}}" to = "${sender_address}" diff --git a/install/vst-install-debian.sh b/install/vst-install-debian.sh index 231e2aa3..b73c929f 100755 --- a/install/vst-install-debian.sh +++ b/install/vst-install-debian.sh @@ -1734,6 +1734,7 @@ touch /usr/local/vesta/data/upgrades/apache_status_public_access touch /usr/local/vesta/data/upgrades/update-cloudflare-ips touch /usr/local/vesta/data/upgrades/enable-tls-in-proftpd touch /usr/local/vesta/data/upgrades/enable_cookie_httponly +touch /usr/local/vesta/data/upgrades/fix_exim_494_autoreply # Secret URL secretquery='' diff --git a/src/deb/vesta/postinst b/src/deb/vesta/postinst index dbb7cbd2..906cd305 100755 --- a/src/deb/vesta/postinst +++ b/src/deb/vesta/postinst @@ -23,6 +23,17 @@ fi echo "1" > /usr/local/vesta/data/upgrades/show_changelog chmod a=rw /usr/local/vesta/data/upgrades/show_changelog +# Fix Autoreply issue with Exim 4.94+ +if [ ! -f "/usr/local/vesta/data/upgrades/fix_exim_494_autoreply" ]; then + touch /usr/local/vesta/data/upgrades/fix_exim_494_autoreply + if [ -f "/etc/exim4/exim4.conf.template" ]; then + echo "== Fix Autoreply issue with Exim 4.94+" + sed -i 's|file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}.msg|file = /etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/autoreply.${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}.msg|g' /etc/exim4/exim4.conf.template + sed -i 's| from = "${lookup{$local_part}dsearch{${extract{5}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/passwd}}}}/mail/${lookup{$domain}dsearch{/etc/exim4/domains/}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}"| from = "${extract{1}{:}{${lookup{$local_part}lsearch{/etc/exim4/domains/${lookup{$domain}dsearch{/etc/exim4/domains/}}/accounts}}}}@${lookup{$domain}dsearch{/etc/exim4/domains/}}"|g' /etc/exim4/exim4.conf.template + systemctl restart exim4 + fi +fi + # Enabling session.cookie_httponly and session.cookie_secure in myvesta php-fpm if [ ! -f "/usr/local/vesta/data/upgrades/enable_cookie_httponly" ]; then touch /usr/local/vesta/data/upgrades/enable_cookie_httponly