diff --git a/bin/v-add-mail-account b/bin/v-add-mail-account index 7200a8dc..8c21cb46 100755 --- a/bin/v-add-mail-account +++ b/bin/v-add-mail-account @@ -53,8 +53,10 @@ else md5=$(/usr/sbin/dovecotpw -s md5 -p "$password") 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 #----------------------------------------------------------# diff --git a/bin/v-add-mail-account-alias b/bin/v-add-mail-account-alias index 844e5805..9447bfb9 100755 --- a/bin/v-add-mail-account-alias +++ b/bin/v-add-mail-account-alias @@ -44,8 +44,10 @@ is_mail_new "$malias" #----------------------------------------------------------# # 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 #----------------------------------------------------------# diff --git a/bin/v-add-mail-account-autoreply b/bin/v-add-mail-account-autoreply index ab0e57b9..67ae3fde 100755 --- a/bin/v-add-mail-account-autoreply +++ b/bin/v-add-mail-account-autoreply @@ -42,25 +42,21 @@ is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account" #----------------------------------------------------------# # 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 -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 # #----------------------------------------------------------# -# Adding vesta alias +# Adding autoreply message echo -e "$autoreply" > $USER_DATA/mail/$account@$domain.msg chmod 660 $USER_DATA/mail/$account@$domain.msg update_object_value "mail/$domain" 'ACCOUNT' "$account" '$AUTOREPLY' 'yes' diff --git a/bin/v-add-mail-account-forward b/bin/v-add-mail-account-forward index f566c14f..ba1f3de1 100755 --- a/bin/v-add-mail-account-forward +++ b/bin/v-add-mail-account-forward @@ -48,15 +48,18 @@ fi # Action # #----------------------------------------------------------# -# Adding forward to exim +# Define fwd string if [ -z "$fwd" ]; then fwd="$forward" else fwd="$fwd,$forward" 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 #----------------------------------------------------------# diff --git a/bin/v-add-mail-account-fwd-only b/bin/v-add-mail-account-fwd-only index 9baffc14..e09ade3f 100755 --- a/bin/v-add-mail-account-fwd-only +++ b/bin/v-add-mail-account-fwd-only @@ -48,21 +48,11 @@ fi #----------------------------------------------------------# # 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 + chown -R $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/fwd_only 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 # diff --git a/bin/v-add-mail-domain b/bin/v-add-mail-domain index 4cb217c2..d17b1185 100755 --- a/bin/v-add-mail-domain +++ b/bin/v-add-mail-domain @@ -43,35 +43,64 @@ is_package_full 'MAIL_DOMAINS' # 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 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 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 dkim +# Generating DKIM keys if [ "$dkim" = 'yes' ]; then openssl genrsa -out $USER_DATA/mail/$domain.pem $dkim_size &>/dev/null openssl rsa -pubout -in $USER_DATA/mail/$domain.pem \ -out $USER_DATA/mail/$domain.pub &>/dev/null - chmod 660 $USER_DATA/mail/$domain.* +fi - cp $USER_DATA/mail/$domain.pem $HOMEDIR/$user/conf/mail/$domain/dkim.pem +# Set permissions +chmod 660 $USER_DATA/mail/$domain.* +chmod 660 $USER_DATA/mail.conf - # Adding dkim dns records +# 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 + + # 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 + + # 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") if [ "$?" -eq 0 ]; then p=$(cat $USER_DATA/mail/$domain.pub|grep -v ' KEY---'|tr -d '\n') @@ -85,34 +114,6 @@ if [ "$dkim" = 'yes' ]; then 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 # diff --git a/bin/v-add-mail-domain-antispam b/bin/v-add-mail-domain-antispam index e15b379e..6af5f79f 100755 --- a/bin/v-add-mail-domain-antispam +++ b/bin/v-add-mail-domain-antispam @@ -40,7 +40,9 @@ is_object_value_empty 'mail' 'DOMAIN' "$domain" '$ANTISPAM' #----------------------------------------------------------# # Adding antispam flag -touch $HOMEDIR/$user/conf/mail/$domain/antispam +if [[ "$MAIL_SYSTEM" =~ exim ]]; then + touch $HOMEDIR/$user/conf/mail/$domain/antispam +fi #----------------------------------------------------------# diff --git a/bin/v-add-mail-domain-antivirus b/bin/v-add-mail-domain-antivirus index 2f55abad..714f89d7 100755 --- a/bin/v-add-mail-domain-antivirus +++ b/bin/v-add-mail-domain-antivirus @@ -40,7 +40,9 @@ is_object_value_empty 'mail' 'DOMAIN' "$domain" '$ANTIVIRUS' #----------------------------------------------------------# # Adding antivirus flag -touch $HOMEDIR/$user/conf/mail/$domain/antivirus +if [[ "$MAIL_SYSTEM" =~ exim ]]; then + touch $HOMEDIR/$user/conf/mail/$domain/antivirus +fi #----------------------------------------------------------# diff --git a/bin/v-add-mail-domain-catchall b/bin/v-add-mail-domain-catchall index 213feeb5..e6f2f1ae 100755 --- a/bin/v-add-mail-domain-catchall +++ b/bin/v-add-mail-domain-catchall @@ -41,8 +41,10 @@ is_object_value_empty 'mail' 'DOMAIN' "$domain" '$CATCHALL' #----------------------------------------------------------# # 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 update_object_value 'mail' 'DOMAIN' "$domain" '$CATCHALL' "$email" - # Logging log_history "added $email as catchall email for $domain" log_event "$OK" "$EVENT" diff --git a/bin/v-add-mail-domain-dkim b/bin/v-add-mail-domain-dkim index d90ba8f1..fa5811a5 100755 --- a/bin/v-add-mail-domain-dkim +++ b/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 chmod 660 $USER_DATA/mail/$domain.* -# Define exim user -if [ "$MAIL_SYSTEM" = 'exim' ]; then - mail_user=exim -fi -if [ "$MAIL_SYSTEM" = 'exim4' ]; then - mail_user=Debian-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 -# 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' policy="\"t=y; o=~;\"" $BIN/v-add-dns-record $user $domain $record TXT "$policy" diff --git a/bin/v-backup-user b/bin/v-backup-user index 024742bd..402118b3 100755 --- a/bin/v-backup-user +++ b/bin/v-backup-user @@ -133,8 +133,7 @@ fi IFS="$OLD_IFS" # WEB domains -if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ] && [ "$WEB" != '*' ] -then +if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then echo "-- WEB --" msg="$msg\n-- WEB --" mkdir $tmpdir/web/ @@ -211,11 +210,9 @@ then cd $HOMEDIR/$user/web/$domain domain_direcotries=$(ls |grep -v logs) 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 + if [ "$i" -eq 1 ]; then echo -e "$(date "+%F %T") $i domain" msg="$msg\n$(date "+%F %T") $i domain" @@ -228,8 +225,7 @@ then fi # DNS domains -if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ] && [ "$DNS" != '*' ] -then +if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS" != '*' ]; then echo "-- DNS --" msg="$msg\n-- DNS --" mkdir $tmpdir/dns/ @@ -262,6 +258,7 @@ then cp $USER_DATA/dns/$domain.conf vesta/$domain.conf cp $HOMEDIR/$user/conf/dns/$domain.db conf/$domain.db done + if [ "$i" -eq 1 ]; then echo -e "$(date "+%F %T") $i domain" msg="$msg\n$(date "+%F %T") $i domain" @@ -274,8 +271,7 @@ then fi # Mail domains -if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL_SYSTEM" != 'no' ] && [ "$MAIL" != '*' ] -then +if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then echo "-- MAIL --" msg="$msg\n-- MAIL --" mkdir $tmpdir/mail/ @@ -300,8 +296,10 @@ then domain_idn=$(idn -t --quiet -a "$domain") # 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 conf="$USER_DATA/mail.conf" @@ -314,14 +312,12 @@ then # Packing mailboxes cd $HOMEDIR/$user/mail/$domain_idn accounts=$(ls) - if [ ! -z "$accounts" ]; then + if [ ! -z "$accounts" ] && [[ "$MAIL_SYSTEM" =~ exim ]]; then tar -cpf $tmpdir/mail/$domain/accounts.tar $accounts - fi - - if [ ! -z "$BACKUP_GZIP" ] && [ ! -z "$accounts" ]; then gzip -$BACKUP_GZIP $tmpdir/mail/$domain/accounts.tar fi done + if [ "$i" -eq 1 ]; then echo -e "$(date "+%F %T") $i domain" msg="$msg\n$(date "+%F %T") $i domain" @@ -335,7 +331,7 @@ fi # Databases -if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ] && [ "$DB" != '*' ]; then +if [ ! -z "$DB_SYSTEM" ] && [ "$DB" != '*' ]; then echo "-- DB --" msg="$msg\n-- DB --" mkdir $tmpdir/db/ @@ -370,10 +366,9 @@ if [ ! -z "$DB_SYSTEM" ] && [ "$DB_SYSTEM" != 'no' ] && [ "$DB" != '*' ]; then mysql) dump_mysql_database ;; pgsql) dump_pgsql_database ;; esac - if [ ! -z "$BACKUP_GZIP" ]; then - gzip -$BACKUP_GZIP $dump - fi + gzip -$BACKUP_GZIP $dump done + if [ "$i" -eq 1 ]; then echo -e "$(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 # Cron jobs -if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON_SYSTEM" != 'no' ] && [ "$CRON" != '*' ] -then +if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON" != '*' ]; then echo "-- CRON --" msg="$msg\n-- CRON --" mkdir $tmpdir/cron/ @@ -403,6 +397,7 @@ then cron_list="$cron_record" cp /var/spool/cron/$user $tmpdir/cron/ fi + if [ "$cron_record" -eq 1 ]; then echo -e "$(date "+%F %T") $cron_record record" msg="$msg\n$(date "+%F %T") $cron_record record" diff --git a/bin/v-change-mail-account-password b/bin/v-change-mail-account-password index 85e71cc6..896e5539 100755 --- a/bin/v-change-mail-account-password +++ b/bin/v-change-mail-account-password @@ -52,9 +52,11 @@ else md5=$(/usr/sbin/dovecotpw -s md5 -p "$password") 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 #----------------------------------------------------------# diff --git a/bin/v-change-mail-account-quota b/bin/v-change-mail-account-quota index c8b736d9..84a65c26 100755 --- a/bin/v-change-mail-account-quota +++ b/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') -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 #----------------------------------------------------------# diff --git a/bin/v-change-mail-domain-catchall b/bin/v-change-mail-domain-catchall index 449e616f..fa3c2a1c 100755 --- a/bin/v-change-mail-domain-catchall +++ b/bin/v-change-mail-domain-catchall @@ -40,8 +40,10 @@ is_object_unsuspended 'mail' 'DOMAIN' "$domain" #----------------------------------------------------------# # 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 #----------------------------------------------------------# diff --git a/bin/v-delete-mail-account b/bin/v-delete-mail-account index b242ab24..e94cae4d 100755 --- a/bin/v-delete-mail-account +++ b/bin/v-delete-mail-account @@ -40,14 +40,18 @@ is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account" #----------------------------------------------------------# # 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' update_object_value 'mail' 'DOMAIN' "$domain" '$ACCOUNTS' "$accounts" - # Logging log_history "deleted $account@$domain mail account" log_event "$OK" "$EVENT" diff --git a/bin/v-delete-mail-account-alias b/bin/v-delete-mail-account-alias index dd7e10fa..de7310d7 100755 --- a/bin/v-delete-mail-account-alias +++ b/bin/v-delete-mail-account-alias @@ -48,7 +48,11 @@ fi # 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" |\ sed "s/,/\n/g"|\ sed "s/^$malias$//g"|\ diff --git a/bin/v-delete-mail-account-autoreply b/bin/v-delete-mail-account-autoreply index fcbe088d..9d8c4c22 100755 --- a/bin/v-delete-mail-account-autoreply +++ b/bin/v-delete-mail-account-autoreply @@ -43,14 +43,19 @@ is_object_value_exist "mail/$domain" 'ACCOUNT' "$account" '$AUTOREPLY' # 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 # #----------------------------------------------------------# +# Deleting autoreply message +rm -f $USER_DATA/mail/$domain/$account@$domain.msg + # Update config update_object_value "mail/$domain" 'ACCOUNT' "$account" '$AUTOREPLY' 'no' diff --git a/bin/v-delete-mail-account-forward b/bin/v-delete-mail-account-forward index a65aa6ab..4eb31e6c 100755 --- a/bin/v-delete-mail-account-forward +++ b/bin/v-delete-mail-account-forward @@ -48,21 +48,25 @@ fi # Action # #----------------------------------------------------------# +# Define new fwd string fwd=$(echo "$fwd" |\ sed "s/,/\n/g"|\ sed "s/^$forward$//g"|\ sed "/^$/d"|\ 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 # #----------------------------------------------------------# -# Update config +# Updating config update_object_value "mail/$domain" 'ACCOUNT' "$account" '$FWD' "$fwd" # Logging diff --git a/bin/v-delete-mail-account-fwd-only b/bin/v-delete-mail-account-fwd-only index 0fb95ab9..9ea83bbc 100755 --- a/bin/v-delete-mail-account-fwd-only +++ b/bin/v-delete-mail-account-fwd-only @@ -42,7 +42,9 @@ is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account" #----------------------------------------------------------# # 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 #----------------------------------------------------------# diff --git a/bin/v-delete-mail-domain b/bin/v-delete-mail-domain index 3729d81f..cb32dfaf 100755 --- a/bin/v-delete-mail-domain +++ b/bin/v-delete-mail-domain @@ -42,9 +42,21 @@ is_object_unsuspended 'mail' 'DOMAIN' "$domain" get_domain_values 'mail' 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 decrease_user_value "$user" '$U_MAIL_ACCOUNTS' "$accounts" - # Logging log_history "deleted mail domain $domain" log_event "$OK" "$EVENT" diff --git a/bin/v-delete-mail-domain-antispam b/bin/v-delete-mail-domain-antispam index 41c902be..3e68529e 100755 --- a/bin/v-delete-mail-domain-antispam +++ b/bin/v-delete-mail-domain-antispam @@ -40,7 +40,9 @@ is_object_value_exist 'mail' 'DOMAIN' "$domain" '$ANTISPAM' #----------------------------------------------------------# # 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 #----------------------------------------------------------# diff --git a/bin/v-delete-mail-domain-antivirus b/bin/v-delete-mail-domain-antivirus index cfec16ce..6a925e4c 100755 --- a/bin/v-delete-mail-domain-antivirus +++ b/bin/v-delete-mail-domain-antivirus @@ -40,7 +40,9 @@ is_object_value_exist 'mail' 'DOMAIN' "$domain" '$ANTIVIRUS' #----------------------------------------------------------# # 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 #----------------------------------------------------------# diff --git a/bin/v-delete-mail-domain-catchall b/bin/v-delete-mail-domain-catchall index 52b3e942..e7c0119f 100755 --- a/bin/v-delete-mail-domain-catchall +++ b/bin/v-delete-mail-domain-catchall @@ -40,7 +40,9 @@ is_object_value_exist 'mail' 'DOMAIN' "$domain" '$CATCHALL' #----------------------------------------------------------# # 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 #----------------------------------------------------------# diff --git a/bin/v-delete-mail-domain-dkim b/bin/v-delete-mail-domain-dkim index c0846ded..a79c2cfe 100755 --- a/bin/v-delete-mail-domain-dkim +++ b/bin/v-delete-mail-domain-dkim @@ -38,14 +38,15 @@ is_object_value_exist 'mail' 'DOMAIN' "$domain" '$DKIM' # 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 +# 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 -# Checking dns domain -check_dns_domain=$(is_object_valid 'dns' 'DOMAIN' "$domain") -if [ "$?" -eq 0 ]; then +# Deleting dns record +if [ ! -z "$DNS_SYSTEM" ] && [ -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 diff --git a/bin/v-restart-mail b/bin/v-restart-mail index 9ef4eb2c..71775262 100755 --- a/bin/v-restart-mail +++ b/bin/v-restart-mail @@ -40,7 +40,6 @@ if [ -z "$1" ] && [ "$SCHEDULED_RESTART" = 'yes' ]; then exit fi - if [ -z "$MAIL_SYSTEM" ] || [ "$MAIL_SYSTEM" = 'remote' ]; then exit fi diff --git a/bin/v-restore-user b/bin/v-restore-user index 07264b4c..1615e6ce 100755 --- a/bin/v-restore-user +++ b/bin/v-restore-user @@ -332,11 +332,10 @@ if [ "$web" != 'no' ]; then conf="$HOMEDIR/$user/conf/web/$PROXY_SYSTEM.conf" cat $tmp_conf >> $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 # Adding SSL proxy vhost @@ -611,8 +610,9 @@ if [ "$db" != 'no' ]; then echo "-- 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 db_include_list=$(mktemp) for db_include in ${db//,/ }; do diff --git a/bin/v-suspend-mail-account b/bin/v-suspend-mail-account index e5b75c74..d691d05b 100755 --- a/bin/v-suspend-mail-account +++ b/bin/v-suspend-mail-account @@ -41,10 +41,12 @@ is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account" # 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 #----------------------------------------------------------# diff --git a/bin/v-suspend-mail-domain b/bin/v-suspend-mail-domain index 3e5001bc..02828e5d 100755 --- a/bin/v-suspend-mail-domain +++ b/bin/v-suspend-mail-domain @@ -39,7 +39,9 @@ is_object_unsuspended 'mail' 'DOMAIN' "$domain" #----------------------------------------------------------# # 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 increase_user_value "$user" '$SUSPENDED_MAIL' - # Logging log_event "$OK" "$EVENT" diff --git a/bin/v-unsuspend-mail-account b/bin/v-unsuspend-mail-account index 776d1f92..690f78df 100755 --- a/bin/v-unsuspend-mail-account +++ b/bin/v-unsuspend-mail-account @@ -41,11 +41,13 @@ is_object_suspended "mail/$domain" 'ACCOUNT' "$account" # 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 #----------------------------------------------------------# diff --git a/bin/v-unsuspend-mail-domain b/bin/v-unsuspend-mail-domain index d9c00449..d6167852 100755 --- a/bin/v-unsuspend-mail-domain +++ b/bin/v-unsuspend-mail-domain @@ -38,7 +38,9 @@ is_object_suspended 'mail' 'DOMAIN' "$domain" #----------------------------------------------------------# # 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 decrease_user_value "$user" '$SUSPENDED_MAIL' - # Logging log_event "$OK" "$EVENT" diff --git a/bin/v-update-mail-domain-disk b/bin/v-update-mail-domain-disk index 4e59c6a6..e3c79dcc 100755 --- a/bin/v-update-mail-domain-disk +++ b/bin/v-update-mail-domain-disk @@ -31,6 +31,9 @@ is_object_valid 'user' 'USER' "$user" is_object_unsuspended 'user' 'USER' "$user" is_object_valid 'mail' 'DOMAIN' "$domain" is_object_unsuspended 'mail' 'DOMAIN' "$domain" +if [ -z "$MAIL_SYSTEM" ] || [ "$MAIL_SYSTEM" = 'remote' ]; then + exit +fi #----------------------------------------------------------# diff --git a/bin/v-update-mail-domains-disk b/bin/v-update-mail-domains-disk index 79dcb244..49494cd9 100755 --- a/bin/v-update-mail-domains-disk +++ b/bin/v-update-mail-domains-disk @@ -25,6 +25,9 @@ check_args '1' "$#" 'USER' validate_format 'user' is_system_enabled "$MAIL_SYSTEM" 'MAIL_SYSTEM' is_object_valid 'user' 'USER' "$user" +if [ -z "$MAIL_SYSTEM" ] || [ "$MAIL_SYSTEM" = 'remote' ]; then + exit +fi #----------------------------------------------------------# diff --git a/func/rebuild.sh b/func/rebuild.sh index f4eee16c..10ae5bd8 100644 --- a/func/rebuild.sh +++ b/func/rebuild.sh @@ -425,74 +425,57 @@ rebuild_mail_domain_conf() { domain_idn=$(idn -t --quiet -a "$domain") 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 SUSPENDED_MAIL=$((SUSPENDED_MAIL +1)) - rm -f /etc/exim/domains/$domain_idn 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 - dom_aliases=$HOMEDIR/$user/conf/mail/$domain/aliases - if [ ! -z "$CATCHALL" ]; then - echo "*@$domain:$CATCHALL" >> $dom_aliases + # 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 + + # 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 # Rebuild domain accounts @@ -513,37 +496,32 @@ rebuild_mail_domain_conf() { MD5='SUSPENDED' 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 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 + # 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 - 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 # Update counters update_object_value 'mail' 'DOMAIN' "$domain" '$ACCOUNTS' "$accs"