Просмотр исходного кода

Fix issue with autoreply + Exim 4.94.4 (#2151)

* Fix issue with autoreply + Exim 4.94.4

* Upgrade script for current installs
Jaap Marcus 4 лет назад
Родитель
Сommit
c223dbdd12

+ 2 - 0
bin/v-add-mail-account

@@ -70,6 +70,8 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then
     fi
     fi
     str="$account:$md5:$user:mail::$HOMEDIR/$user:${quota}:userdb_quota_rule=*:storage=${quota}M"
     str="$account:$md5:$user:mail::$HOMEDIR/$user:${quota}:userdb_quota_rule=*:storage=${quota}M"
     echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
     echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+    userstr="$account:$account:$user:mail:$HOMEDIR/$user"
+    echo $str >> $HOMEDIR/$user/conf/mail/$domain/accounts
 fi
 fi
 
 
 # Create mail account folder (mailbox)
 # Create mail account folder (mailbox)

+ 2 - 0
bin/v-add-mail-domain

@@ -115,6 +115,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then
     touch $HOMEDIR/$user/conf/mail/$domain/aliases
     touch $HOMEDIR/$user/conf/mail/$domain/aliases
     touch $HOMEDIR/$user/conf/mail/$domain/passwd
     touch $HOMEDIR/$user/conf/mail/$domain/passwd
     touch $HOMEDIR/$user/conf/mail/$domain/fwd_only
     touch $HOMEDIR/$user/conf/mail/$domain/fwd_only
+    touch $HOMEDIR/$user/conf/mail/$domain/accounts
     ln -s $HOMEDIR/$user/conf/mail/$domain \
     ln -s $HOMEDIR/$user/conf/mail/$domain \
         /etc/$MAIL_SYSTEM/domains/$domain_idn
         /etc/$MAIL_SYSTEM/domains/$domain_idn
 
 
@@ -154,6 +155,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then
     if [ "$IMAP_SYSTEM" = 'dovecot' ]; then
     if [ "$IMAP_SYSTEM" = 'dovecot' ]; then
         chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd
         chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd
     fi
     fi
+    chown $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/accounts
     chown $user:mail $HOMEDIR/$user/mail/$domain_idn
     chown $user:mail $HOMEDIR/$user/mail/$domain_idn
 fi
 fi
 
 

+ 1 - 0
bin/v-delete-mail-account

@@ -59,6 +59,7 @@ if [[ "$MAIL_SYSTEM" =~ exim ]]; then
 
 
     sed -i "/^$account@$domain_idn:/d" $HOMEDIR/$user/conf/mail/$domain/aliases
     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/passwd
+    sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/accounts
     sed -i "/^$account$/d" $HOMEDIR/$user/conf/mail/$domain/fwd_only
     sed -i "/^$account$/d" $HOMEDIR/$user/conf/mail/$domain/fwd_only
     rm -rf $HOMEDIR/$user/mail/$domain/$account
     rm -rf $HOMEDIR/$user/mail/$domain/$account
 fi
 fi

+ 5 - 0
func/rebuild.sh

@@ -541,6 +541,7 @@ rebuild_mail_domain_conf() {
         mkdir -p $HOMEDIR/$user/conf/mail/$domain
         mkdir -p $HOMEDIR/$user/conf/mail/$domain
         ln -s $HOMEDIR/$user/conf/mail/$domain \
         ln -s $HOMEDIR/$user/conf/mail/$domain \
             /etc/$MAIL_SYSTEM/domains/$domain_idn
             /etc/$MAIL_SYSTEM/domains/$domain_idn
+        rm -f $HOMEDIR/$user/conf/mail/$domain/accounts
         rm -f $HOMEDIR/$user/conf/mail/$domain/aliases
         rm -f $HOMEDIR/$user/conf/mail/$domain/aliases
         rm -f $HOMEDIR/$user/conf/mail/$domain/antispam
         rm -f $HOMEDIR/$user/conf/mail/$domain/antispam
         rm -f $HOMEDIR/$user/conf/mail/$domain/antivirus
         rm -f $HOMEDIR/$user/conf/mail/$domain/antivirus
@@ -548,6 +549,7 @@ rebuild_mail_domain_conf() {
         rm -f $HOMEDIR/$user/conf/mail/$domain/passwd
         rm -f $HOMEDIR/$user/conf/mail/$domain/passwd
         rm -f $HOMEDIR/$user/conf/mail/$domain/fwd_only
         rm -f $HOMEDIR/$user/conf/mail/$domain/fwd_only
         rm -f $HOMEDIR/$user/conf/mail/$domain/ip
         rm -f $HOMEDIR/$user/conf/mail/$domain/ip
+        touch $HOMEDIR/$user/conf/mail/$domain/accounts
         touch $HOMEDIR/$user/conf/mail/$domain/aliases
         touch $HOMEDIR/$user/conf/mail/$domain/aliases
         touch $HOMEDIR/$user/conf/mail/$domain/passwd
         touch $HOMEDIR/$user/conf/mail/$domain/passwd
         touch $HOMEDIR/$user/conf/mail/$domain/fwd_only
         touch $HOMEDIR/$user/conf/mail/$domain/fwd_only
@@ -624,6 +626,8 @@ rebuild_mail_domain_conf() {
             fi
             fi
             str="$account:$MD5:$user:mail::$HOMEDIR/$user:${QUOTA}:userdb_quota_rule=*:storage=${QUOTA}M"
             str="$account:$MD5:$user:mail::$HOMEDIR/$user:${QUOTA}:userdb_quota_rule=*:storage=${QUOTA}M"
             echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
             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
             for malias in ${ALIAS//,/ }; do
                 echo "$malias@$domain_idn:$account@$domain_idn" >> $dom_aliases
                 echo "$malias@$domain_idn:$account@$domain_idn" >> $dom_aliases
             done
             done
@@ -647,6 +651,7 @@ rebuild_mail_domain_conf() {
         if [ "$IMAP_SYSTEM" = "dovecot" ]; then
         if [ "$IMAP_SYSTEM" = "dovecot" ]; then
             chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd
             chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd
         fi
         fi
+        chown $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/accounts
         chown $user:mail $HOMEDIR/$user/mail/$domain_idn
         chown $user:mail $HOMEDIR/$user/mail/$domain_idn
     fi
     fi
 
 

+ 2 - 2
install/deb/exim/exim4.conf.4.94.template

@@ -413,8 +413,8 @@ address_reply:
 
 
 userautoreply:
 userautoreply:
   driver = autoreply
   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
   headers = Content-Type: text/plain; charset=utf-8;\nContent-Transfer-Encoding: 8bit
   subject = "${if def:h_Subject: {Autoreply: \"${rfc2047:$h_Subject:}\"} {Autoreply Message}}"
   subject = "${if def:h_Subject: {Autoreply: \"${rfc2047:$h_Subject:}\"} {Autoreply Message}}"
   to = "${sender_address}"
   to = "${sender_address}"

+ 12 - 1
install/upgrade/versions/1.4.15.sh

@@ -17,4 +17,15 @@
 
 
 if [ ! -z "$DB_PMA_ALIAS" ]; then
 if [ ! -z "$DB_PMA_ALIAS" ]; then
     $HESTIA/bin/v-change-sys-db-alias 'pma' $DB_PMA_ALIAS
     $HESTIA/bin/v-change-sys-db-alias 'pma' $DB_PMA_ALIAS
-fi
+fi
+
+exim_version=$(exim4 --version |  head -1 | awk  '{print $3}' | cut -f -2 -d .);
+if [ "$exim_version" = "4.94" ]; then
+    echo "[ ! ] Fix issue with Exim and "
+    if [ -f "/etc/exim4/exim4.conf.template" ]; then 
+        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
+    fi
+fi
+
+