Serghey Rodin пре 12 година
родитељ
комит
972ecfaa74

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

@@ -53,8 +53,10 @@ else
     md5=$(/usr/sbin/dovecotpw -s md5 -p "$password")
     md5=$(/usr/sbin/dovecotpw -s md5 -p "$password")
 fi
 fi
 
 
-str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
-echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
+    echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 4 - 2
bin/v-add-mail-account-alias

@@ -44,8 +44,10 @@ is_mail_new "$malias"
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Adding exim alias
 # Adding exim alias
-str="$malias@$domain:$account@$domain"
-echo "$str" >> $HOMEDIR/$user/conf/mail/$domain/aliases
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    str="$malias@$domain:$account@$domain"
+    echo "$str" >> $HOMEDIR/$user/conf/mail/$domain/aliases
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 7 - 11
bin/v-add-mail-account-autoreply

@@ -42,25 +42,21 @@ is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account"
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 #                       Action                             #
 #                       Action                             #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
-# Add exim autoreply
-echo -e "$autoreply" > $HOMEDIR/$user/conf/mail/$domain/autoreply.$account.msg
 
 
-# Set ownership and permissions
-if [ "$MAIL_SYSTEM" = 'exim' ]; then
-    mail_user=exim
+# Adding exim autoreply
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    msg="$HOMEDIR/$user/conf/mail/$domain/autoreply.$account.msg"
+    echo -e "$autoreply" > $msg
+    chown $MAIL_USER:mail $msg
+    chmod 660 $msg
 fi
 fi
-if [ "$MAIL_SYSTEM" = 'exim4' ]; then
-    mail_user=Debian-exim
-fi
-chown $mail_user:mail $HOMEDIR/$user/conf/mail/$domain/autoreply.$account.msg
-chmod 660 $HOMEDIR/$user/conf/mail/$domain/autoreply.$account.msg
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 #                       Vesta                              #
 #                       Vesta                              #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
-# Adding vesta alias
+# Adding autoreply message
 echo -e "$autoreply" > $USER_DATA/mail/$account@$domain.msg
 echo -e "$autoreply" > $USER_DATA/mail/$account@$domain.msg
 chmod 660 $USER_DATA/mail/$account@$domain.msg
 chmod 660 $USER_DATA/mail/$account@$domain.msg
 update_object_value "mail/$domain" 'ACCOUNT' "$account" '$AUTOREPLY' 'yes'
 update_object_value "mail/$domain" 'ACCOUNT' "$account" '$AUTOREPLY' 'yes'

+ 6 - 3
bin/v-add-mail-account-forward

@@ -48,15 +48,18 @@ fi
 #                       Action                             #
 #                       Action                             #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
-# Adding forward to exim
+# Define fwd string
 if [ -z "$fwd" ]; then
 if [ -z "$fwd" ]; then
     fwd="$forward"
     fwd="$forward"
 else
 else
     fwd="$fwd,$forward"
     fwd="$fwd,$forward"
 fi
 fi
 
 
-sed -i "/^$account@$domain:/ d" $HOMEDIR/$user/conf/mail/$domain/aliases
-echo "$account@$domain:$fwd" >> $HOMEDIR/$user/conf/mail/$domain/aliases
+# Adding forward to exim
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    sed -i "/^$account@$domain:/ d" $HOMEDIR/$user/conf/mail/$domain/aliases
+    echo "$account@$domain:$fwd" >> $HOMEDIR/$user/conf/mail/$domain/aliases
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 2 - 12
bin/v-add-mail-account-fwd-only

@@ -48,21 +48,11 @@ fi
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Adding account to fwd_only
 # Adding account to fwd_only
-touch $HOMEDIR/$user/conf/mail/$domain/fwd_only
-check_fwd=$(grep "^$account$" $HOMEDIR/$user/conf/mail/$domain/fwd_only)
-if [ -z "$check_fwd" ]; then
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
     echo "$account" > $HOMEDIR/$user/conf/mail/$domain/fwd_only
     echo "$account" > $HOMEDIR/$user/conf/mail/$domain/fwd_only
+    chown -R $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/fwd_only
 fi
 fi
 
 
-# Set ownership
-if [ "$MAIL_SYSTEM" = 'exim' ]; then
-    mail_user=exim
-fi
-if [ "$MAIL_SYSTEM" = 'exim4' ]; then
-    mail_user=Debian-exim
-fi
-chown -R $mail_user:mail $HOMEDIR/$user/conf/mail/$domain/fwd_only
-
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 #                       Vesta                              #
 #                       Vesta                              #

+ 51 - 50
bin/v-add-mail-domain

@@ -43,35 +43,64 @@ is_package_full 'MAIL_DOMAINS'
 #                       Action                             #
 #                       Action                             #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
-# Adding domain directory and necessary files
-mkdir $HOMEDIR/$user/conf/mail/$domain
-mkdir $HOMEDIR/$user/mail/$domain_idn
-touch $HOMEDIR/$user/conf/mail/$domain/aliases
-touch $HOMEDIR/$user/conf/mail/$domain/passwd
-
-# Adding symlink
-ln -s $HOMEDIR/$user/conf/mail/$domain /etc/$MAIL_SYSTEM/domains/$domain_idn
-
-# Adding antispam protection
-if [ "$antispam" = 'yes' ]; then
-    touch $HOMEDIR/$user/conf/mail/$domain/antispam
-fi
-
-# Adding antivirus protection
-if [ "$antivirus" = 'yes' ]; then
-    touch $HOMEDIR/$user/conf/mail/$domain/antivirus
-fi
+# Adding domain to mail.conf
+s="DOMAIN='$domain' ANTIVIRUS='$antivirus' ANTISPAM='$antispam' DKIM='$dkim'"
+s="$s ACCOUNTS='0' U_DISK='0' CATCHALL='' SUSPENDED='no' TIME='$TIME'"
+s="$s DATE='$DATE'"
+echo $s >> $USER_DATA/mail.conf
+touch $USER_DATA/mail/$domain.conf
 
 
-# Adding dkim
+# Generating DKIM keys
 if [ "$dkim" = 'yes' ]; then
 if [ "$dkim" = 'yes' ]; then
     openssl genrsa -out $USER_DATA/mail/$domain.pem $dkim_size &>/dev/null
     openssl genrsa -out $USER_DATA/mail/$domain.pem $dkim_size &>/dev/null
     openssl rsa -pubout -in $USER_DATA/mail/$domain.pem \
     openssl rsa -pubout -in $USER_DATA/mail/$domain.pem \
         -out $USER_DATA/mail/$domain.pub &>/dev/null
         -out $USER_DATA/mail/$domain.pub &>/dev/null
-    chmod 660 $USER_DATA/mail/$domain.*
+fi
+
+# Set permissions
+chmod 660 $USER_DATA/mail/$domain.*
+chmod 660 $USER_DATA/mail.conf
+
+# Building exim configs
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    mkdir $HOMEDIR/$user/conf/mail/$domain
+    mkdir $HOMEDIR/$user/mail/$domain_idn
+    touch $HOMEDIR/$user/conf/mail/$domain/aliases
+    touch $HOMEDIR/$user/conf/mail/$domain/passwd
+    touch $HOMEDIR/$user/conf/mail/$domain/fwd_only
+    ln -s $HOMEDIR/$user/conf/mail/$domain \
+        /etc/$MAIL_SYSTEM/domains/$domain_idn
+
+    # Adding antispam protection
+    if [ "$antispam" = 'yes' ]; then
+        touch $HOMEDIR/$user/conf/mail/$domain/antispam
+    fi
+
+    # Adding antivirus protection
+    if [ "$antivirus" = 'yes' ]; then
+        touch $HOMEDIR/$user/conf/mail/$domain/antivirus
+    fi
 
 
-    cp $USER_DATA/mail/$domain.pem $HOMEDIR/$user/conf/mail/$domain/dkim.pem
+    # Adding dkim support
+    if [ "$dkim" = 'yes' ]; then
+        cp -f $USER_DATA/mail/$domain.pem \
+            $HOMEDIR/$user/conf/mail/$domain/dkim.pem
+    fi
+
+    # Set permission
+    chmod 771 $HOMEDIR/$user/conf/mail/$domain
+    chmod 660 $HOMEDIR/$user/conf/mail/$domain/*
+    chmod 771 /etc/$MAIL_SYSTEM/domains/$domain_idn
+    chmod 770 $HOMEDIR/$user/mail/$domain_idn
 
 
-    # Adding dkim dns records
+    # Set ownership
+    chown -R $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain
+    chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd
+    chown $user:mail $HOMEDIR/$user/mail/$domain_idn
+fi
+
+# Adding dkim dns records
+if [ ! -z "$DNS_SYSTEM" ] && [ "$dkim" = 'yes' ]; then
     check_dns_domain=$(is_object_valid 'dns' 'DOMAIN' "$domain")
     check_dns_domain=$(is_object_valid 'dns' 'DOMAIN' "$domain")
     if [ "$?" -eq 0 ]; then
     if [ "$?" -eq 0 ]; then
         p=$(cat $USER_DATA/mail/$domain.pub|grep -v ' KEY---'|tr -d '\n')
         p=$(cat $USER_DATA/mail/$domain.pub|grep -v ' KEY---'|tr -d '\n')
@@ -85,34 +114,6 @@ if [ "$dkim" = 'yes' ]; then
     fi
     fi
 fi
 fi
 
 
-# Adding domain to vesta db
-s="DOMAIN='$domain' ANTIVIRUS='$antivirus' ANTISPAM='$antispam' DKIM='$dkim'"
-s="$s ACCOUNTS='0' U_DISK='0' CATCHALL='' SUSPENDED='no' TIME='$TIME'"
-s="$s DATE='$DATE'"
-
-# Set permissions
-chmod 660 $USER_DATA/mail/$domain.*
-chmod 771 $HOMEDIR/$user/conf/mail/$domain
-chmod 660 $HOMEDIR/$user/conf/mail/$domain/*
-chmod 771 /etc/$MAIL_SYSTEM/domains/$domain_idn
-chmod 770 $HOMEDIR/$user/mail/$domain_idn
-
-# Set ownership
-if [ "$MAIL_SYSTEM" = 'exim' ]; then
-    mail_user=exim
-fi
-if [ "$MAIL_SYSTEM" = 'exim4' ]; then
-    mail_user=Debian-exim
-fi
-chown -R $mail_user:mail $HOMEDIR/$user/conf/mail/$domain
-chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd
-chown $user:mail $HOMEDIR/$user/mail/$domain_idn
-
-echo $s >> $USER_DATA/mail.conf
-touch $USER_DATA/mail/$domain.conf
-chmod 660 $USER_DATA/mail.conf
-chmod 660 $USER_DATA/mail/$domain.conf
-
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 #                       Vesta                              #
 #                       Vesta                              #

+ 3 - 1
bin/v-add-mail-domain-antispam

@@ -40,7 +40,9 @@ is_object_value_empty 'mail' 'DOMAIN' "$domain" '$ANTISPAM'
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Adding antispam flag
 # Adding antispam flag
-touch $HOMEDIR/$user/conf/mail/$domain/antispam
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    touch $HOMEDIR/$user/conf/mail/$domain/antispam
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 3 - 1
bin/v-add-mail-domain-antivirus

@@ -40,7 +40,9 @@ is_object_value_empty 'mail' 'DOMAIN' "$domain" '$ANTIVIRUS'
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Adding antivirus flag
 # Adding antivirus flag
-touch $HOMEDIR/$user/conf/mail/$domain/antivirus
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    touch $HOMEDIR/$user/conf/mail/$domain/antivirus
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 4 - 3
bin/v-add-mail-domain-catchall

@@ -41,8 +41,10 @@ is_object_value_empty 'mail' 'DOMAIN' "$domain" '$CATCHALL'
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Adding catchall alias
 # Adding catchall alias
-sed -i "/*@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases
-echo "*@$domain:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    sed -i "/*@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases
+    echo "*@$domain:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#
@@ -52,7 +54,6 @@ echo "*@$domain:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases
 # Adding antispam in config
 # Adding antispam in config
 update_object_value 'mail' 'DOMAIN' "$domain" '$CATCHALL' "$email"
 update_object_value 'mail' 'DOMAIN' "$domain" '$CATCHALL' "$email"
 
 
-
 # Logging
 # Logging
 log_history "added $email as catchall email for $domain"
 log_history "added $email as catchall email for $domain"
 log_event "$OK" "$EVENT"
 log_event "$OK" "$EVENT"

+ 8 - 16
bin/v-add-mail-domain-dkim

@@ -46,24 +46,16 @@ openssl rsa -pubout -in $USER_DATA/mail/$domain.pem \
     -out $USER_DATA/mail/$domain.pub &>/dev/null
     -out $USER_DATA/mail/$domain.pub &>/dev/null
 chmod 660 $USER_DATA/mail/$domain.*
 chmod 660 $USER_DATA/mail/$domain.*
 
 
-# Define exim user
-if [ "$MAIL_SYSTEM" = 'exim' ]; then
-    mail_user=exim
+# Adding dkim keys
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    cp $USER_DATA/mail/$domain.pem $HOMEDIR/$user/conf/mail/$domain/dkim.pem
+    chown $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/dkim.pem
+    chmod 660 $HOMEDIR/$user/conf/mail/$domain/dkim.pem
 fi
 fi
-if [ "$MAIL_SYSTEM" = 'exim4' ]; then
-    mail_user=Debian-exim
-fi
-
-# Adding dkim to config
-cp $USER_DATA/mail/$domain.pem $HOMEDIR/$user/conf/mail/$domain/dkim.pem
-chown $mail_user:mail $HOMEDIR/$user/conf/mail/$domain/dkim.pem
-chmod 660 $HOMEDIR/$user/conf/mail/$domain/dkim.pem
 
 
-# Checking dns domain
-check_dns_domain=$(is_object_valid 'dns' 'DOMAIN' "$domain")
-if [ "$?" -eq 0 ]; then
-    # Adding dkim dns records
-    p=$(cat $USER_DATA/mail/$domain.pub|grep -v ' KEY---'|tr -d '\n')
+# Adding dns records
+if [ ! -z "$DNS_SYSTEM" ] && [ -e "$USER_DATA/dns/$domain.conf" ]; then
+    p=$(cat $USER_DATA/mail/$domain.pub |grep -v ' KEY---' |tr -d '\n')
     record='_domainkey'
     record='_domainkey'
     policy="\"t=y; o=~;\""
     policy="\"t=y; o=~;\""
     $BIN/v-add-dns-record $user $domain $record TXT "$policy"
     $BIN/v-add-dns-record $user $domain $record TXT "$policy"

+ 17 - 22
bin/v-backup-user

@@ -133,8 +133,7 @@ fi
 IFS="$OLD_IFS"
 IFS="$OLD_IFS"
 
 
 # WEB domains
 # WEB domains
-if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ] && [ "$WEB" != '*' ]
-then
+if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
     echo "-- WEB --"
     echo "-- WEB --"
     msg="$msg\n-- WEB --"
     msg="$msg\n-- WEB --"
     mkdir $tmpdir/web/
     mkdir $tmpdir/web/
@@ -211,11 +210,9 @@ then
         cd $HOMEDIR/$user/web/$domain
         cd $HOMEDIR/$user/web/$domain
         domain_direcotries=$(ls |grep -v logs)
         domain_direcotries=$(ls |grep -v logs)
         tar -cpf $tmpdir/web/$domain/domain_data.tar $domain_direcotries
         tar -cpf $tmpdir/web/$domain/domain_data.tar $domain_direcotries
-
-        if [ ! -z "$BACKUP_GZIP" ]; then
-            gzip -$BACKUP_GZIP $tmpdir/web/$domain/domain_data.tar
-        fi
+        gzip -$BACKUP_GZIP $tmpdir/web/$domain/domain_data.tar
     done
     done
+
     if [ "$i" -eq 1 ]; then
     if [ "$i" -eq 1 ]; then
         echo -e "$(date "+%F %T") $i domain"
         echo -e "$(date "+%F %T") $i domain"
         msg="$msg\n$(date "+%F %T") $i domain"
         msg="$msg\n$(date "+%F %T") $i domain"
@@ -228,8 +225,7 @@ then
 fi
 fi
 
 
 # DNS domains
 # DNS domains
-if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ] && [ "$DNS" != '*' ]
-then
+if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS" != '*' ]; then
     echo "-- DNS --"
     echo "-- DNS --"
     msg="$msg\n-- DNS --"
     msg="$msg\n-- DNS --"
     mkdir $tmpdir/dns/
     mkdir $tmpdir/dns/
@@ -262,6 +258,7 @@ then
         cp $USER_DATA/dns/$domain.conf vesta/$domain.conf
         cp $USER_DATA/dns/$domain.conf vesta/$domain.conf
         cp $HOMEDIR/$user/conf/dns/$domain.db conf/$domain.db
         cp $HOMEDIR/$user/conf/dns/$domain.db conf/$domain.db
     done
     done
+
     if [ "$i" -eq 1 ]; then
     if [ "$i" -eq 1 ]; then
         echo -e "$(date "+%F %T") $i domain"
         echo -e "$(date "+%F %T") $i domain"
         msg="$msg\n$(date "+%F %T") $i domain"
         msg="$msg\n$(date "+%F %T") $i domain"
@@ -274,8 +271,7 @@ then
 fi
 fi
 
 
 # Mail domains
 # Mail domains
-if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ] && [ "$MAIL" != '*' ]
-then
+if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then
     echo "-- MAIL --"
     echo "-- MAIL --"
     msg="$msg\n-- MAIL --"
     msg="$msg\n-- MAIL --"
     mkdir $tmpdir/mail/
     mkdir $tmpdir/mail/
@@ -300,8 +296,10 @@ then
         domain_idn=$(idn -t --quiet -a "$domain")
         domain_idn=$(idn -t --quiet -a "$domain")
 
 
         # Creating exim config
         # Creating exim config
-        cd $tmpdir/mail/$domain/
-        cp $HOMEDIR/$user/conf/mail/$domain/* conf/
+        if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+            cd $tmpdir/mail/$domain/
+            cp $HOMEDIR/$user/conf/mail/$domain/* conf/
+        fi
 
 
         # Creating vesta config
         # Creating vesta config
         conf="$USER_DATA/mail.conf"
         conf="$USER_DATA/mail.conf"
@@ -314,14 +312,12 @@ then
         # Packing mailboxes
         # Packing mailboxes
         cd $HOMEDIR/$user/mail/$domain_idn
         cd $HOMEDIR/$user/mail/$domain_idn
         accounts=$(ls)
         accounts=$(ls)
-        if [ ! -z "$accounts" ]; then
+        if [ ! -z "$accounts" ] && [[ "$MAIL_SYSTEM" =~ exim ]]; then
             tar -cpf $tmpdir/mail/$domain/accounts.tar  $accounts
             tar -cpf $tmpdir/mail/$domain/accounts.tar  $accounts
-        fi
-
-        if [ ! -z "$BACKUP_GZIP" ] && [ ! -z "$accounts" ]; then
             gzip -$BACKUP_GZIP $tmpdir/mail/$domain/accounts.tar
             gzip -$BACKUP_GZIP $tmpdir/mail/$domain/accounts.tar
         fi
         fi
     done
     done
+
     if [ "$i" -eq 1 ]; then
     if [ "$i" -eq 1 ]; then
         echo -e "$(date "+%F %T") $i domain"
         echo -e "$(date "+%F %T") $i domain"
         msg="$msg\n$(date "+%F %T") $i domain"
         msg="$msg\n$(date "+%F %T") $i domain"
@@ -335,7 +331,7 @@ fi
 
 
 
 
 # Databases
 # Databases
-if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ] && [ "$DB" != '*' ]; then
+if [ ! -z "$DB_SYSTEM" ] && [ "$DB" != '*' ]; then
     echo "-- DB --"
     echo "-- DB --"
     msg="$msg\n-- DB --"
     msg="$msg\n-- DB --"
     mkdir $tmpdir/db/
     mkdir $tmpdir/db/
@@ -370,10 +366,9 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ] && [ "$DB" != '*' ]; then
             mysql) dump_mysql_database ;;
             mysql) dump_mysql_database ;;
             pgsql) dump_pgsql_database ;;
             pgsql) dump_pgsql_database ;;
         esac
         esac
-        if [ ! -z "$BACKUP_GZIP" ]; then 
-            gzip -$BACKUP_GZIP $dump
-        fi
+        gzip -$BACKUP_GZIP $dump
     done
     done
+
     if [ "$i" -eq 1 ]; then
     if [ "$i" -eq 1 ]; then
         echo -e "$(date "+%F %T") $i database"
         echo -e "$(date "+%F %T") $i database"
         msg="$msg\n$(date "+%F %T") $i database"
         msg="$msg\n$(date "+%F %T") $i database"
@@ -386,8 +381,7 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ] && [ "$DB" != '*' ]; then
 fi
 fi
 
 
 # Cron jobs
 # Cron jobs
-if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ] && [ "$CRON" != '*' ]
-then
+if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON" != '*' ]; then
     echo "-- CRON --"
     echo "-- CRON --"
     msg="$msg\n-- CRON --"
     msg="$msg\n-- CRON --"
     mkdir $tmpdir/cron/
     mkdir $tmpdir/cron/
@@ -403,6 +397,7 @@ then
         cron_list="$cron_record"
         cron_list="$cron_record"
         cp /var/spool/cron/$user $tmpdir/cron/
         cp /var/spool/cron/$user $tmpdir/cron/
     fi
     fi
+
     if [ "$cron_record" -eq 1 ]; then
     if [ "$cron_record" -eq 1 ]; then
         echo -e "$(date "+%F %T") $cron_record record"
         echo -e "$(date "+%F %T") $cron_record record"
         msg="$msg\n$(date "+%F %T") $cron_record record"
         msg="$msg\n$(date "+%F %T") $cron_record record"

+ 5 - 3
bin/v-change-mail-account-password

@@ -52,9 +52,11 @@ else
     md5=$(/usr/sbin/dovecotpw -s md5 -p "$password")
     md5=$(/usr/sbin/dovecotpw -s md5 -p "$password")
 fi
 fi
 
 
-sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
-str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
-echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
+    str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
+    echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 5 - 3
bin/v-change-mail-account-quota

@@ -43,9 +43,11 @@ is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account"
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 md5=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$MD5')
 md5=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$MD5')
-sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
-str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
-echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
+    str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
+    echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 4 - 2
bin/v-change-mail-domain-catchall

@@ -40,8 +40,10 @@ is_object_unsuspended 'mail' 'DOMAIN' "$domain"
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Change cathcall alias
 # Change cathcall alias
-sed -i "/*@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases
-echo "*@$domain:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    sed -i "/*@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases
+    echo "*@$domain:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 11 - 8
bin/v-delete-mail-account

@@ -40,14 +40,18 @@ is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account"
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 #                       Action                             #
 #                       Action                             #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
-aliases=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$ALIAS')
-for al in ${aliases//,/ }; do
-    sed -i "/^$al@$domain:$account/d" $HOMEDIR/$user/conf/mail/$domain/aliases
-done
 
 
-sed -i "/^$account@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases
-sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
-rm -rf $HOMEDIR/$user/mail/$domain/$account
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    aliases=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$ALIAS')
+    for al in ${aliases//,/ }; do
+        sed -i "/^$al@$domain:$account/d" \
+            $HOMEDIR/$user/conf/mail/$domain/aliases
+    done
+
+    sed -i "/^$account@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases
+    sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
+    rm -rf $HOMEDIR/$user/mail/$domain/$account
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#
@@ -62,7 +66,6 @@ accounts=$(wc -l $USER_DATA/mail/$domain.conf | cut -f 1 -d ' ')
 decrease_user_value "$user" '$U_MAIL_ACCOUNTS'
 decrease_user_value "$user" '$U_MAIL_ACCOUNTS'
 update_object_value 'mail' 'DOMAIN' "$domain" '$ACCOUNTS' "$accounts"
 update_object_value 'mail' 'DOMAIN' "$domain" '$ACCOUNTS' "$accounts"
 
 
-
 # Logging
 # Logging
 log_history "deleted $account@$domain mail account"
 log_history "deleted $account@$domain mail account"
 log_event "$OK" "$EVENT"
 log_event "$OK" "$EVENT"

+ 5 - 1
bin/v-delete-mail-account-alias

@@ -48,7 +48,11 @@ fi
 #                       Action                             #
 #                       Action                             #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
-sed -i "/^$malias@$domain:$account/d" $HOMEDIR/$user/conf/mail/$domain/aliases
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    sed -i "/^$malias@$domain:$account/d" \
+        $HOMEDIR/$user/conf/mail/$domain/aliases
+fi
+
 aliases=$(echo "$aliases" |\
 aliases=$(echo "$aliases" |\
     sed "s/,/\n/g"|\
     sed "s/,/\n/g"|\
     sed "s/^$malias$//g"|\
     sed "s/^$malias$//g"|\

+ 7 - 2
bin/v-delete-mail-account-autoreply

@@ -43,14 +43,19 @@ is_object_value_exist "mail/$domain" 'ACCOUNT' "$account" '$AUTOREPLY'
 #                       Action                             #
 #                       Action                             #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
-rm -f $HOMEDIR/$user/conf/mail/$domain/autoreply.$account.msg
-rm -f $USER_DATA/mail/$domain/$account@$domain.msg
+# Deleting exim autoreply message
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    rm -f $HOMEDIR/$user/conf/mail/$domain/autoreply.$account.msg
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 #                       Vesta                              #
 #                       Vesta                              #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
+# Deleting autoreply message
+rm -f $USER_DATA/mail/$domain/$account@$domain.msg
+
 # Update config
 # Update config
 update_object_value "mail/$domain" 'ACCOUNT' "$account"  '$AUTOREPLY' 'no'
 update_object_value "mail/$domain" 'ACCOUNT' "$account"  '$AUTOREPLY' 'no'
 
 

+ 7 - 3
bin/v-delete-mail-account-forward

@@ -48,21 +48,25 @@ fi
 #                       Action                             #
 #                       Action                             #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
+# Define new fwd string
 fwd=$(echo "$fwd" |\
 fwd=$(echo "$fwd" |\
     sed "s/,/\n/g"|\
     sed "s/,/\n/g"|\
     sed "s/^$forward$//g"|\
     sed "s/^$forward$//g"|\
     sed "/^$/d"|\
     sed "/^$/d"|\
     sed ':a;N;$!ba;s/\n/,/g')
     sed ':a;N;$!ba;s/\n/,/g')
 
 
-sed -i "/^$account@$domain:/ d" $HOMEDIR/$user/conf/mail/$domain/aliases
-echo "$account@$domain:$fwd" >> $HOMEDIR/$user/conf/mail/$domain/aliases
+# Deleting exim forward
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    sed -i "/^$account@$domain:/ d" $HOMEDIR/$user/conf/mail/$domain/aliases
+    echo "$account@$domain:$fwd" >> $HOMEDIR/$user/conf/mail/$domain/aliases
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 #                       Vesta                              #
 #                       Vesta                              #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
-# Update config
+# Updating config
 update_object_value "mail/$domain" 'ACCOUNT' "$account"  '$FWD' "$fwd"
 update_object_value "mail/$domain" 'ACCOUNT' "$account"  '$FWD' "$fwd"
 
 
 # Logging
 # Logging

+ 3 - 1
bin/v-delete-mail-account-fwd-only

@@ -42,7 +42,9 @@ is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account"
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Deleting account from fwd_only
 # Deleting account from fwd_only
-sed -i "/^$account$/d" $HOMEDIR/$user/conf/mail/$domain/fwd_only
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    sed -i "/^$account$/d" $HOMEDIR/$user/conf/mail/$domain/fwd_only
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 15 - 4
bin/v-delete-mail-domain

@@ -42,9 +42,21 @@ is_object_unsuspended 'mail' 'DOMAIN' "$domain"
 get_domain_values 'mail'
 get_domain_values 'mail'
 accounts=$(wc -l $USER_DATA/mail/$domain.conf|cut -f 1 -d ' ')
 accounts=$(wc -l $USER_DATA/mail/$domain.conf|cut -f 1 -d ' ')
 
 
-rm -f /etc/$MAIL_SYSTEM/domains/$domain_idn
-rm -rf $HOMEDIR/$user/conf/mail/$domain
-rm -rf $HOMEDIR/$user/mail/$domain_idn
+# Deleting exim configuration files
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    rm -f /etc/$MAIL_SYSTEM/domains/$domain_idn
+    rm -rf $HOMEDIR/$user/conf/mail/$domain
+    rm -rf $HOMEDIR/$user/mail/$domain_idn
+fi
+
+# Deleting dkim dns record
+if [ "$DKIM" = 'yes' ] && [ -e "$USER_DATA/dns/$domain.conf" ]; then
+    records=$($BIN/v-list-dns-records $user $domain plain)
+    dkim_records=$(echo "$records" |grep -w '_domainkey' | cut -f 1 -d ' ')
+    for id in $dkim_records; do
+        $BIN/v-delete-dns-record $user $domain $id
+    done
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#
@@ -65,7 +77,6 @@ if [ "$DKIM" = 'yes' ]; then
 fi
 fi
 decrease_user_value "$user" '$U_MAIL_ACCOUNTS' "$accounts"
 decrease_user_value "$user" '$U_MAIL_ACCOUNTS' "$accounts"
 
 
-
 # Logging
 # Logging
 log_history "deleted mail domain $domain"
 log_history "deleted mail domain $domain"
 log_event "$OK" "$EVENT"
 log_event "$OK" "$EVENT"

+ 3 - 1
bin/v-delete-mail-domain-antispam

@@ -40,7 +40,9 @@ is_object_value_exist 'mail' 'DOMAIN' "$domain" '$ANTISPAM'
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Delete antispam flag
 # Delete antispam flag
-rm -f $HOMEDIR/$user/conf/mail/$domain/antispam
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    rm -f $HOMEDIR/$user/conf/mail/$domain/antispam
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 3 - 1
bin/v-delete-mail-domain-antivirus

@@ -40,7 +40,9 @@ is_object_value_exist 'mail' 'DOMAIN' "$domain" '$ANTIVIRUS'
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Delete antivirus flag
 # Delete antivirus flag
-rm -f $HOMEDIR/$user/conf/mail/$domain/antivirus
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    rm -f $HOMEDIR/$user/conf/mail/$domain/antivirus
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 3 - 1
bin/v-delete-mail-domain-catchall

@@ -40,7 +40,9 @@ is_object_value_exist 'mail' 'DOMAIN' "$domain" '$CATCHALL'
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Delete cathcall alias
 # Delete cathcall alias
-sed -i "/*@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    sed -i "/*@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 9 - 8
bin/v-delete-mail-domain-dkim

@@ -38,14 +38,15 @@ is_object_value_exist 'mail' 'DOMAIN' "$domain" '$DKIM'
 #                       Action                             #
 #                       Action                             #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
-# Generating dkim
-rm -f $USER_DATA/mail/$domain.pem
-rm -f $USER_DATA/mail/$domain.pub
-rm -f $HOMEDIR/$user/conf/mail/$domain/dkim.pem
-
-# Checking dns domain
-check_dns_domain=$(is_object_valid 'dns' 'DOMAIN' "$domain")
-if [ "$?" -eq 0 ]; then
+# Deleting dkim
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    rm -f $USER_DATA/mail/$domain.pem
+    rm -f $USER_DATA/mail/$domain.pub
+    rm -f $HOMEDIR/$user/conf/mail/$domain/dkim.pem
+fi
+
+# Deleting dns record
+if [ ! -z "$DNS_SYSTEM" ] && [ -e "$USER_DATA/dns/$domain.conf" ]; then
     records=$($BIN/v-list-dns-records $user $domain plain)
     records=$($BIN/v-list-dns-records $user $domain plain)
     dkim_records=$(echo "$records" |grep -w '_domainkey' | cut -f 1 -d ' ')
     dkim_records=$(echo "$records" |grep -w '_domainkey' | cut -f 1 -d ' ')
     for id in $dkim_records; do
     for id in $dkim_records; do

+ 0 - 1
bin/v-restart-mail

@@ -40,7 +40,6 @@ if [ -z "$1" ] && [ "$SCHEDULED_RESTART" = 'yes' ]; then
     exit
     exit
 fi
 fi
 
 
-
 if [ -z "$MAIL_SYSTEM" ] || [ "$MAIL_SYSTEM" = 'remote' ]; then
 if [ -z "$MAIL_SYSTEM" ] || [ "$MAIL_SYSTEM" = 'remote' ]; then
     exit
     exit
 fi
 fi

+ 7 - 7
bin/v-restore-user

@@ -332,11 +332,10 @@ if [ "$web" != 'no' ]; then
                     conf="$HOMEDIR/$user/conf/web/$PROXY_SYSTEM.conf"
                     conf="$HOMEDIR/$user/conf/web/$PROXY_SYSTEM.conf"
                     cat $tmp_conf >> $conf
                     cat $tmp_conf >> $conf
                     rm -f $tmp_conf
                     rm -f $tmp_conf
-
-                    proxy_include=$(grep "$conf" $proxy_conf)
-                    if [ -z "$proxy_include" ]; then
-                        echo "include $conf;" >> $proxy_conf
-                    fi
+                fi
+                proxy_include=$(grep "$conf" $proxy_conf)
+                if [ -z "$proxy_include" ]; then
+                    echo "include $conf;" >> $proxy_conf
                 fi
                 fi
 
 
                 # Adding SSL proxy vhost
                 # Adding SSL proxy vhost
@@ -611,8 +610,9 @@ if [ "$db" != 'no' ]; then
     echo "-- DB --"
     echo "-- DB --"
     msg="$msg\n-- DB --"
     msg="$msg\n-- DB --"
 
 
-    # Create database list
-    db_list=$(tar -tf $BACKUP/$backup | grep "/db.conf$" | cut -f 3 -d '/')
+    # Create domain list
+    db_list=$(tar -tf $BACKUP/$backup | grep "^./db" |\
+        grep db.conf | cut -f 3 -d '/')
     if [ ! -z "$db" ]; then
     if [ ! -z "$db" ]; then
         db_include_list=$(mktemp)
         db_include_list=$(mktemp)
         for db_include in ${db//,/ }; do
         for db_include in ${db//,/ }; do

+ 6 - 4
bin/v-suspend-mail-account

@@ -41,10 +41,12 @@ is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account"
 #                       Action                             #
 #                       Action                             #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
-quota=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$QUOTA')
-sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
-str="$account:SUSPENDED:$user:mail::$HOMEDIR/$user:$quota"
-echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    quota=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$QUOTA')
+    sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
+    str="$account:SUSPENDED:$user:mail::$HOMEDIR/$user:$quota"
+    echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 3 - 2
bin/v-suspend-mail-domain

@@ -39,7 +39,9 @@ is_object_unsuspended 'mail' 'DOMAIN' "$domain"
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Deleting symbolic link
 # Deleting symbolic link
-rm -f /etc/$MAIL_SYSTEM/domains/$domain
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    rm -f /etc/$MAIL_SYSTEM/domains/$domain
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#
@@ -51,7 +53,6 @@ update_object_value 'mail' 'DOMAIN' "$domain" '$SUSPENDED' 'yes'
 sed -i "s/SUSPENDED='no'/SUSPENDED='yes'/g" $USER_DATA/mail/$domain.conf
 sed -i "s/SUSPENDED='no'/SUSPENDED='yes'/g" $USER_DATA/mail/$domain.conf
 increase_user_value "$user" '$SUSPENDED_MAIL'
 increase_user_value "$user" '$SUSPENDED_MAIL'
 
 
-
 # Logging
 # Logging
 log_event "$OK" "$EVENT"
 log_event "$OK" "$EVENT"
 
 

+ 7 - 5
bin/v-unsuspend-mail-account

@@ -41,11 +41,13 @@ is_object_suspended "mail/$domain" 'ACCOUNT' "$account"
 #                       Action                             #
 #                       Action                             #
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
-md5=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$MD5')
-quota=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$QUOTA')
-sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
-str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
-echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    md5=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$MD5')
+    quota=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$QUOTA')
+    sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
+    str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
+    echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 3 - 2
bin/v-unsuspend-mail-domain

@@ -38,7 +38,9 @@ is_object_suspended 'mail' 'DOMAIN' "$domain"
 #----------------------------------------------------------#
 #----------------------------------------------------------#
 
 
 # Add symbolic link
 # Add symbolic link
-ln -s $HOMEDIR/$user/conf/mail/$domain /etc/$MAIL_SYSTEM/domains/
+if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+    ln -s $HOMEDIR/$user/conf/mail/$domain /etc/$MAIL_SYSTEM/domains/
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#
@@ -50,7 +52,6 @@ update_object_value 'mail' 'DOMAIN' "$domain" '$SUSPENDED' 'no'
 sed -i "s/SUSPENDED='yes'/SUSPENDED='no'/g" $USER_DATA/mail/$domain.conf
 sed -i "s/SUSPENDED='yes'/SUSPENDED='no'/g" $USER_DATA/mail/$domain.conf
 decrease_user_value "$user" '$SUSPENDED_MAIL'
 decrease_user_value "$user" '$SUSPENDED_MAIL'
 
 
-
 # Logging
 # Logging
 log_event "$OK" "$EVENT"
 log_event "$OK" "$EVENT"
 
 

+ 3 - 0
bin/v-update-mail-domain-disk

@@ -31,6 +31,9 @@ is_object_valid 'user' 'USER' "$user"
 is_object_unsuspended 'user' 'USER' "$user"
 is_object_unsuspended 'user' 'USER' "$user"
 is_object_valid 'mail' 'DOMAIN' "$domain"
 is_object_valid 'mail' 'DOMAIN' "$domain"
 is_object_unsuspended 'mail' 'DOMAIN' "$domain"
 is_object_unsuspended 'mail' 'DOMAIN' "$domain"
+if [ -z "$MAIL_SYSTEM" ] || [ "$MAIL_SYSTEM" = 'remote' ]; then
+    exit
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 3 - 0
bin/v-update-mail-domains-disk

@@ -25,6 +25,9 @@ check_args '1' "$#" 'USER'
 validate_format 'user'
 validate_format 'user'
 is_system_enabled "$MAIL_SYSTEM" 'MAIL_SYSTEM'
 is_system_enabled "$MAIL_SYSTEM" 'MAIL_SYSTEM'
 is_object_valid 'user' 'USER' "$user"
 is_object_valid 'user' 'USER' "$user"
+if [ -z "$MAIL_SYSTEM" ] || [ "$MAIL_SYSTEM" = 'remote' ]; then
+    exit
+fi
 
 
 
 
 #----------------------------------------------------------#
 #----------------------------------------------------------#

+ 68 - 90
func/rebuild.sh

@@ -425,74 +425,57 @@ rebuild_mail_domain_conf() {
     domain_idn=$(idn -t --quiet -a "$domain")
     domain_idn=$(idn -t --quiet -a "$domain")
     get_domain_values 'mail'
     get_domain_values 'mail'
 
 
-    # Rebuilding config structure
-    rm -f /etc/$MAIL_SYSTEM/domains/$domain_idn
-    mkdir -p $HOMEDIR/$user/conf/mail/$domain
-    ln -s $HOMEDIR/$user/conf/mail/$domain \
-        /etc/$MAIL_SYSTEM/domains/$domain_idn
-    rm -f $HOMEDIR/$user/conf/mail/$domain/aliases
-    rm -f $HOMEDIR/$user/conf/mail/$domain/antispam
-    rm -f $HOMEDIR/$user/conf/mail/$domain/antivirus
-    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
-    touch $HOMEDIR/$user/conf/mail/$domain/aliases
-    touch $HOMEDIR/$user/conf/mail/$domain/passwd
-    touch $HOMEDIR/$user/conf/mail/$domain/fwd_only
-
-    # Adding antispam protection
-    if [ "$ANTISPAM" = 'yes' ]; then
-        touch $HOMEDIR/$user/conf/mail/$domain/antispam
-    fi
-
-    # Adding antivirus protection
-    if [ "$ANTIVIRUS" = 'yes' ]; then
-        touch $HOMEDIR/$user/conf/mail/$domain/antivirus
-    fi
-
-    # Adding dkim
-    if [ "$DKIM" = 'yes' ]; then
-        U_MAIL_DKMI=$((U_MAIL_DKMI + 1))
-        pem="$USER_DATA/mail/$domain.pem"
-        pub="$USER_DATA/mail/$domain.pub"
-        openssl genrsa -out $pem 1024 &>/dev/null
-        openssl rsa -pubout -in $pem -out $pub &>/dev/null
-        cp $pem $HOMEDIR/$user/conf/mail/$domain/dkim.pem
-
-        # Deleting old dkim records
-        records=$($BIN/v-list-dns-records $user $domain plain)
-        dkim_records=$(echo "$records" |grep -w '_domainkey'|cut -f 1 -d ' ')
-        for id in $dkim_records; do
-            $BIN/v-delete-dns-record $user $domain $id
-        done
-
-        # Adding new dkim dns records
-        check_dns_domain=$(is_object_valid 'dns' 'DOMAIN' "$domain")
-        if [ "$?" -eq 0 ]; then
-            record='_domainkey'
-            policy="\"t=y; o=~;\""
-            $BIN/v-add-dns-record $user $domain $record TXT "$policy"
-
-            record='mail._domainkey'
-            p=$(cat $pub|grep -v ' KEY---'|tr -d '\n')
-            slct="\"k=rsa\; p=$p\""
-            $BIN/v-add-dns-record $user $domain $record TXT "$slct"
-        fi
-    fi
-
-    # Removing symbolic link
     if [ "$SUSPENDED" = 'yes' ]; then
     if [ "$SUSPENDED" = 'yes' ]; then
         SUSPENDED_MAIL=$((SUSPENDED_MAIL +1))
         SUSPENDED_MAIL=$((SUSPENDED_MAIL +1))
-        rm -f /etc/exim/domains/$domain_idn
     fi
     fi
 
 
-    if [ ! -e $HOMEDIR/$user/mail/$domain_idn ]; then
-        mkdir $HOMEDIR/$user/mail/$domain_idn
-    fi
+    # Rebuilding exim config structure
+    if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+        rm -f /etc/$MAIL_SYSTEM/domains/$domain_idn
+        mkdir -p $HOMEDIR/$user/conf/mail/$domain
+        ln -s $HOMEDIR/$user/conf/mail/$domain \
+            /etc/$MAIL_SYSTEM/domains/$domain_idn
+        rm -f $HOMEDIR/$user/conf/mail/$domain/aliases
+        rm -f $HOMEDIR/$user/conf/mail/$domain/antispam
+        rm -f $HOMEDIR/$user/conf/mail/$domain/antivirus
+        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
+        touch $HOMEDIR/$user/conf/mail/$domain/aliases
+        touch $HOMEDIR/$user/conf/mail/$domain/passwd
+        touch $HOMEDIR/$user/conf/mail/$domain/fwd_only
+
+        # Adding antispam protection
+        if [ "$ANTISPAM" = 'yes' ]; then
+            touch $HOMEDIR/$user/conf/mail/$domain/antispam
+        fi
+
+        # Adding antivirus protection
+        if [ "$ANTIVIRUS" = 'yes' ]; then
+            touch $HOMEDIR/$user/conf/mail/$domain/antivirus
+        fi
+
+        # Adding dkim
+        if [ "$DKIM" = 'yes' ]; then
+            cp $USER_DATA/mail/$domain.pem \
+                $HOMEDIR/$user/conf/mail/$domain/dkim.pem
+        fi
+
+        # Removing symbolic link if domain is suspended
+        if [ "$SUSPENDED" = 'yes' ]; then
+            rm -f /etc/exim/domains/$domain_idn
+        fi
 
 
-    dom_aliases=$HOMEDIR/$user/conf/mail/$domain/aliases
-    if [ ! -z "$CATCHALL" ]; then
-        echo "*@$domain:$CATCHALL" >> $dom_aliases
+        # Adding mail directiry
+        if [ ! -e $HOMEDIR/$user/mail/$domain_idn ]; then
+            mkdir $HOMEDIR/$user/mail/$domain_idn
+        fi
+
+        # Adding catchall email
+        dom_aliases=$HOMEDIR/$user/conf/mail/$domain/aliases
+        if [ ! -z "$CATCHALL" ]; then
+            echo "*@$domain:$CATCHALL" >> $dom_aliases
+        fi
     fi
     fi
 
 
     # Rebuild domain accounts
     # Rebuild domain accounts
@@ -513,37 +496,32 @@ rebuild_mail_domain_conf() {
             MD5='SUSPENDED'
             MD5='SUSPENDED'
         fi
         fi
 
 
-        str="$account:$MD5:$user:mail::$HOMEDIR/$user:$QUOTA"
-        echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
-
-        for malias in ${ALIAS//,/ }; do
-            echo "$malias@$domain:$account@$domain" >> $dom_aliases
-        done
-        if [ ! -z "$FWD" ]; then
-            echo "$account@$domain:$FWD" >> $dom_aliases
-        fi
-        if [ "$FWD_ONLY" = 'yes' ]; then
-            echo "$account" >> $HOMEDIR/$user/conf/mail/$domain/fwd_only
+        if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+            str="$account:$MD5:$user:mail::$HOMEDIR/$user:$QUOTA"
+            echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
+            for malias in ${ALIAS//,/ }; do
+                echo "$malias@$domain:$account@$domain" >> $dom_aliases
+            done
+            if [ ! -z "$FWD" ]; then
+                echo "$account@$domain:$FWD" >> $dom_aliases
+            fi
+            if [ "$FWD_ONLY" = 'yes' ]; then
+                echo "$account" >> $HOMEDIR/$user/conf/mail/$domain/fwd_only
+            fi
         fi
         fi
     done
     done
 
 
-    # Set permissions
-    chmod 660 $USER_DATA/mail/$domain.*
-    chmod 771 $HOMEDIR/$user/conf/mail/$domain
-    chmod 660 $HOMEDIR/$user/conf/mail/$domain/*
-    chmod 771 /etc/$MAIL_SYSTEM/domains/$domain_idn
-    chmod 770 $HOMEDIR/$user/mail/$domain_idn
-
-    # Set ownership
-    if [ "$MAIL_SYSTEM" = 'exim' ]; then
-        mail_user=exim
-    fi
-    if [ "$MAIL_SYSTEM" = 'exim4' ]; then
-        mail_user=Debian-exim
+    # Set permissions and ownership
+    if [[ "$MAIL_SYSTEM" =~ exim ]]; then
+        chmod 660 $USER_DATA/mail/$domain.*
+        chmod 771 $HOMEDIR/$user/conf/mail/$domain
+        chmod 660 $HOMEDIR/$user/conf/mail/$domain/*
+        chmod 771 /etc/$MAIL_SYSTEM/domains/$domain_idn
+        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 $user:mail $HOMEDIR/$user/mail/$domain_idn
     fi
     fi
-    chown -R $mail_user:mail $HOMEDIR/$user/conf/mail/$domain
-    chown -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd
-    chown $user:mail $HOMEDIR/$user/mail/$domain_idn
 
 
     # Update counters
     # Update counters
     update_object_value 'mail' 'DOMAIN' "$domain" '$ACCOUNTS' "$accs"
     update_object_value 'mail' 'DOMAIN' "$domain" '$ACCOUNTS' "$accs"