Browse Source

Improve mail domain rebuild function

Kristan Kenney 6 years ago
parent
commit
ef188edd86
3 changed files with 11 additions and 10 deletions
  1. 3 0
      bin/v-rebuild-mail-domain
  2. 3 9
      bin/v-rebuild-mail-domains
  3. 5 1
      func/rebuild.sh

+ 3 - 0
bin/v-rebuild-mail-domain

@@ -61,6 +61,9 @@ update_user_value "$user" '$U_MAIL_SSL' "$U_MAIL_SSL"
 update_user_value "$user" '$SUSPENDED_MAIL' "$SUSPENDED_MAIL"
 update_user_value "$user" '$U_DISK_MAIL' "$U_DISK_MAIL"
 
+# Update disk usage statistics
+$BIN/v-update-user-disk $user
+
 # Logging
 log_event "$OK" "$ARGUMENTS"
 

+ 3 - 9
bin/v-rebuild-mail-domains

@@ -45,19 +45,12 @@ U_MAIL_SSL=0
 SUSPENDED_MAIL=0
 U_DISK_MAIL=0
 
-# Checking mail folder
-if [ ! -d "$USER_DATA/mail" ]; then
-    rm -f $USER_DATA/mail
-    mkdir $USER_DATA/mail
-fi
-
 # Starting loop
 for domain in $(search_objects 'mail' 'SUSPENDED' "*" 'DOMAIN'); do
     rebuild_mail_domain_conf
     if [ ! -z "$WEB_SYSTEM" ] || [ ! -z "$PROXY_SYSTEM" ]; then
         $BIN/v-delete-webmail $user $domain ''
-        $BIN/v-add-webmail $user $domain '' 
-        sleep 0.5
+        $BIN/v-add-webmail $user $domain ''
     fi
 done
 
@@ -74,7 +67,8 @@ update_user_value "$user" '$U_MAIL_SSL' "$U_MAIL_SSL"
 update_user_value "$user" '$SUSPENDED_MAIL' "$SUSPENDED_MAIL"
 update_user_value "$user" '$U_DISK_MAIL' "$U_DISK_MAIL"
 
-recalc_user_disk_usage
+# Update disk usage statistics
+$BIN/v-update-user-disk $user
 
 # Logging
 log_event "$OK" "$ARGUMENTS"

+ 5 - 1
func/rebuild.sh

@@ -451,6 +451,11 @@ rebuild_mail_domain_conf() {
         SUSPENDED_MAIL=$((SUSPENDED_MAIL +1))
     fi
 
+    if [ ! -d "$USER_DATA/mail" ]; then
+        rm -f $USER_DATA/mail
+        mkdir $USER_DATA/mail
+    fi
+
     # Rebuilding exim config structure
     if [[ "$MAIL_SYSTEM" =~ exim ]]; then
         rm -f /etc/$MAIL_SYSTEM/domains/$domain_idn
@@ -552,7 +557,6 @@ rebuild_mail_domain_conf() {
 
     # Add missing SSL configuration flags to existing domains
     # for per-domain SSL migration
-
     sslcheck=$(grep "DOMAIN='$domain'" $USER_DATA/mail.conf | grep SSL)
     if [ -z "$sslcheck" ]; then
         sed -i "s|$domain'|$domain' SSL='no' LETSENCRYPT='no'|g" $USER_DATA/mail.conf