mirror of
https://github.com/myvesta/vesta
synced 2025-08-19 21:04:07 -07:00
remote mail support
This commit is contained in:
parent
d08ee4b8c6
commit
972ecfaa74
33 changed files with 288 additions and 271 deletions
|
@ -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"
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
|
||||||
|
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -44,8 +44,10 @@ is_mail_new "$malias"
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Adding exim alias
|
# Adding exim alias
|
||||||
str="$malias@$domain:$account@$domain"
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
echo "$str" >> $HOMEDIR/$user/conf/mail/$domain/aliases
|
str="$malias@$domain:$account@$domain"
|
||||||
|
echo "$str" >> $HOMEDIR/$user/conf/mail/$domain/aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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
|
# Adding exim autoreply
|
||||||
if [ "$MAIL_SYSTEM" = 'exim' ]; then
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
mail_user=exim
|
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'
|
||||||
|
|
|
@ -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
|
# Adding forward to exim
|
||||||
echo "$account@$domain:$fwd" >> $HOMEDIR/$user/conf/mail/$domain/aliases
|
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
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -48,21 +48,11 @@ fi
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Adding account to fwd_only
|
# Adding account to fwd_only
|
||||||
touch $HOMEDIR/$user/conf/mail/$domain/fwd_only
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
check_fwd=$(grep "^$account$" $HOMEDIR/$user/conf/mail/$domain/fwd_only)
|
|
||||||
if [ -z "$check_fwd" ]; 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 #
|
||||||
|
|
|
@ -43,35 +43,64 @@ is_package_full 'MAIL_DOMAINS'
|
||||||
# Action #
|
# Action #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Adding domain directory and necessary files
|
# Adding domain to mail.conf
|
||||||
mkdir $HOMEDIR/$user/conf/mail/$domain
|
s="DOMAIN='$domain' ANTIVIRUS='$antivirus' ANTISPAM='$antispam' DKIM='$dkim'"
|
||||||
mkdir $HOMEDIR/$user/mail/$domain_idn
|
s="$s ACCOUNTS='0' U_DISK='0' CATCHALL='' SUSPENDED='no' TIME='$TIME'"
|
||||||
touch $HOMEDIR/$user/conf/mail/$domain/aliases
|
s="$s DATE='$DATE'"
|
||||||
touch $HOMEDIR/$user/conf/mail/$domain/passwd
|
echo $s >> $USER_DATA/mail.conf
|
||||||
|
touch $USER_DATA/mail/$domain.conf
|
||||||
|
|
||||||
# Adding symlink
|
# Generating DKIM keys
|
||||||
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
|
|
||||||
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
|
||||||
|
|
||||||
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")
|
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 #
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
echo "*@$domain:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases
|
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"
|
||||||
|
|
|
@ -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
|
# Adding dkim keys
|
||||||
if [ "$MAIL_SYSTEM" = 'exim' ]; then
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
mail_user=exim
|
cp $USER_DATA/mail/$domain.pem $HOMEDIR/$user/conf/mail/$domain/dkim.pem
|
||||||
fi
|
chown $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain/dkim.pem
|
||||||
if [ "$MAIL_SYSTEM" = 'exim4' ]; then
|
chmod 660 $HOMEDIR/$user/conf/mail/$domain/dkim.pem
|
||||||
mail_user=Debian-exim
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Adding dkim to config
|
# Adding dns records
|
||||||
cp $USER_DATA/mail/$domain.pem $HOMEDIR/$user/conf/mail/$domain/dkim.pem
|
if [ ! -z "$DNS_SYSTEM" ] && [ -e "$USER_DATA/dns/$domain.conf" ]; then
|
||||||
chown $mail_user:mail $HOMEDIR/$user/conf/mail/$domain/dkim.pem
|
p=$(cat $USER_DATA/mail/$domain.pub |grep -v ' KEY---' |tr -d '\n')
|
||||||
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')
|
|
||||||
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"
|
||||||
|
|
|
@ -133,8 +133,7 @@ fi
|
||||||
IFS="$OLD_IFS"
|
IFS="$OLD_IFS"
|
||||||
|
|
||||||
# WEB domains
|
# WEB domains
|
||||||
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB_SYSTEM" != 'no' ] && [ "$WEB" != '*' ]
|
if [ ! -z "$WEB_SYSTEM" ] && [ "$WEB" != '*' ]; then
|
||||||
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
|
gzip -$BACKUP_GZIP $tmpdir/web/$domain/domain_data.tar
|
||||||
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"
|
||||||
|
@ -228,8 +225,7 @@ then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# DNS domains
|
# DNS domains
|
||||||
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS_SYSTEM" != 'no' ] && [ "$DNS" != '*' ]
|
if [ ! -z "$DNS_SYSTEM" ] && [ "$DNS" != '*' ]; then
|
||||||
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" != '*' ]
|
if [ ! -z "$MAIL_SYSTEM" ] && [ "$MAIL" != '*' ]; then
|
||||||
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
|
||||||
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
cd $tmpdir/mail/$domain/
|
cd $tmpdir/mail/$domain/
|
||||||
cp $HOMEDIR/$user/conf/mail/$domain/* conf/
|
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
|
gzip -$BACKUP_GZIP $dump
|
||||||
fi
|
|
||||||
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" != '*' ]
|
if [ ! -z "$CRON_SYSTEM" ] && [ "$CRON" != '*' ]; then
|
||||||
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"
|
||||||
|
|
|
@ -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
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
|
sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
|
||||||
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
|
||||||
|
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
|
sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
|
||||||
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
|
||||||
|
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
echo "*@$domain:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases
|
sed -i "/*@$domain:/d" $HOMEDIR/$user/conf/mail/$domain/aliases
|
||||||
|
echo "*@$domain:$email" >> $HOMEDIR/$user/conf/mail/$domain/aliases
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
|
aliases=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$ALIAS')
|
||||||
rm -rf $HOMEDIR/$user/mail/$domain/$account
|
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"
|
||||||
|
|
|
@ -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"|\
|
||||||
|
|
|
@ -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
|
# Deleting exim autoreply message
|
||||||
rm -f $USER_DATA/mail/$domain/$account@$domain.msg
|
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'
|
||||||
|
|
||||||
|
|
|
@ -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
|
# Deleting exim forward
|
||||||
echo "$account@$domain:$fwd" >> $HOMEDIR/$user/conf/mail/$domain/aliases
|
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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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
|
# Deleting exim configuration files
|
||||||
rm -rf $HOMEDIR/$user/conf/mail/$domain
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
rm -rf $HOMEDIR/$user/mail/$domain_idn
|
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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -38,14 +38,15 @@ is_object_value_exist 'mail' 'DOMAIN' "$domain" '$DKIM'
|
||||||
# Action #
|
# Action #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
# Generating dkim
|
# Deleting dkim
|
||||||
rm -f $USER_DATA/mail/$domain.pem
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
rm -f $USER_DATA/mail/$domain.pub
|
rm -f $USER_DATA/mail/$domain.pem
|
||||||
rm -f $HOMEDIR/$user/conf/mail/$domain/dkim.pem
|
rm -f $USER_DATA/mail/$domain.pub
|
||||||
|
rm -f $HOMEDIR/$user/conf/mail/$domain/dkim.pem
|
||||||
|
fi
|
||||||
|
|
||||||
# Checking dns domain
|
# Deleting dns record
|
||||||
check_dns_domain=$(is_object_valid 'dns' 'DOMAIN' "$domain")
|
if [ ! -z "$DNS_SYSTEM" ] && [ -e "$USER_DATA/dns/$domain.conf" ]; then
|
||||||
if [ "$?" -eq 0 ]; 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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -332,12 +332,11 @@ 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
|
||||||
|
fi
|
||||||
proxy_include=$(grep "$conf" $proxy_conf)
|
proxy_include=$(grep "$conf" $proxy_conf)
|
||||||
if [ -z "$proxy_include" ]; then
|
if [ -z "$proxy_include" ]; then
|
||||||
echo "include $conf;" >> $proxy_conf
|
echo "include $conf;" >> $proxy_conf
|
||||||
fi
|
fi
|
||||||
fi
|
|
||||||
|
|
||||||
# Adding SSL proxy vhost
|
# Adding SSL proxy vhost
|
||||||
if [ ! -z "$PROXY" ] && [ "$SSL" = 'yes' ]; then
|
if [ ! -z "$PROXY" ] && [ "$SSL" = 'yes' ]; then
|
||||||
|
@ -611,8 +610,9 @@ if [ "$db" != 'no' ]; then
|
||||||
echo "-- DB --"
|
echo "-- DB --"
|
||||||
msg="$msg\n-- DB --"
|
msg="$msg\n-- DB --"
|
||||||
|
|
||||||
# Create database list
|
# Create domain list
|
||||||
db_list=$(tar -tf $BACKUP/$backup | grep "/db.conf$" | cut -f 3 -d '/')
|
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
|
||||||
|
|
|
@ -41,10 +41,12 @@ is_object_unsuspended "mail/$domain" 'ACCOUNT' "$account"
|
||||||
# Action #
|
# Action #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
quota=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$QUOTA')
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
|
quota=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$QUOTA')
|
||||||
str="$account:SUSPENDED:$user:mail::$HOMEDIR/$user:$quota"
|
sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
|
||||||
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
str="$account:SUSPENDED:$user:mail::$HOMEDIR/$user:$quota"
|
||||||
|
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
@ -41,11 +41,13 @@ is_object_suspended "mail/$domain" 'ACCOUNT' "$account"
|
||||||
# Action #
|
# Action #
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
||||||
md5=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$MD5')
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
quota=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$QUOTA')
|
md5=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$MD5')
|
||||||
sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
|
quota=$(get_object_value "mail/$domain" 'ACCOUNT' "$account" '$QUOTA')
|
||||||
str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
|
sed -i "/^$account:/d" $HOMEDIR/$user/conf/mail/$domain/passwd
|
||||||
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
str="$account:$md5:$user:mail::$HOMEDIR/$user:$quota"
|
||||||
|
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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"
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
||||||
#----------------------------------------------------------#
|
#----------------------------------------------------------#
|
||||||
|
|
|
@ -425,7 +425,12 @@ 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
|
if [ "$SUSPENDED" = 'yes' ]; then
|
||||||
|
SUSPENDED_MAIL=$((SUSPENDED_MAIL +1))
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Rebuilding exim config structure
|
||||||
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
rm -f /etc/$MAIL_SYSTEM/domains/$domain_idn
|
rm -f /etc/$MAIL_SYSTEM/domains/$domain_idn
|
||||||
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 \
|
||||||
|
@ -452,48 +457,26 @@ rebuild_mail_domain_conf() {
|
||||||
|
|
||||||
# Adding dkim
|
# Adding dkim
|
||||||
if [ "$DKIM" = 'yes' ]; then
|
if [ "$DKIM" = 'yes' ]; then
|
||||||
U_MAIL_DKMI=$((U_MAIL_DKMI + 1))
|
cp $USER_DATA/mail/$domain.pem \
|
||||||
pem="$USER_DATA/mail/$domain.pem"
|
$HOMEDIR/$user/conf/mail/$domain/dkim.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
|
fi
|
||||||
|
|
||||||
# Removing symbolic link
|
# Removing symbolic link if domain is suspended
|
||||||
if [ "$SUSPENDED" = 'yes' ]; then
|
if [ "$SUSPENDED" = 'yes' ]; then
|
||||||
SUSPENDED_MAIL=$((SUSPENDED_MAIL +1))
|
|
||||||
rm -f /etc/exim/domains/$domain_idn
|
rm -f /etc/exim/domains/$domain_idn
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Adding mail directiry
|
||||||
if [ ! -e $HOMEDIR/$user/mail/$domain_idn ]; then
|
if [ ! -e $HOMEDIR/$user/mail/$domain_idn ]; then
|
||||||
mkdir $HOMEDIR/$user/mail/$domain_idn
|
mkdir $HOMEDIR/$user/mail/$domain_idn
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# Adding catchall email
|
||||||
dom_aliases=$HOMEDIR/$user/conf/mail/$domain/aliases
|
dom_aliases=$HOMEDIR/$user/conf/mail/$domain/aliases
|
||||||
if [ ! -z "$CATCHALL" ]; then
|
if [ ! -z "$CATCHALL" ]; then
|
||||||
echo "*@$domain:$CATCHALL" >> $dom_aliases
|
echo "*@$domain:$CATCHALL" >> $dom_aliases
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
# Rebuild domain accounts
|
# Rebuild domain accounts
|
||||||
accs=0
|
accs=0
|
||||||
|
@ -513,9 +496,9 @@ rebuild_mail_domain_conf() {
|
||||||
MD5='SUSPENDED'
|
MD5='SUSPENDED'
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
str="$account:$MD5:$user:mail::$HOMEDIR/$user:$QUOTA"
|
str="$account:$MD5:$user:mail::$HOMEDIR/$user:$QUOTA"
|
||||||
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
echo $str >> $HOMEDIR/$user/conf/mail/$domain/passwd
|
||||||
|
|
||||||
for malias in ${ALIAS//,/ }; do
|
for malias in ${ALIAS//,/ }; do
|
||||||
echo "$malias@$domain:$account@$domain" >> $dom_aliases
|
echo "$malias@$domain:$account@$domain" >> $dom_aliases
|
||||||
done
|
done
|
||||||
|
@ -525,25 +508,20 @@ rebuild_mail_domain_conf() {
|
||||||
if [ "$FWD_ONLY" = 'yes' ]; then
|
if [ "$FWD_ONLY" = 'yes' ]; then
|
||||||
echo "$account" >> $HOMEDIR/$user/conf/mail/$domain/fwd_only
|
echo "$account" >> $HOMEDIR/$user/conf/mail/$domain/fwd_only
|
||||||
fi
|
fi
|
||||||
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Set permissions
|
# Set permissions and ownership
|
||||||
|
if [[ "$MAIL_SYSTEM" =~ exim ]]; then
|
||||||
chmod 660 $USER_DATA/mail/$domain.*
|
chmod 660 $USER_DATA/mail/$domain.*
|
||||||
chmod 771 $HOMEDIR/$user/conf/mail/$domain
|
chmod 771 $HOMEDIR/$user/conf/mail/$domain
|
||||||
chmod 660 $HOMEDIR/$user/conf/mail/$domain/*
|
chmod 660 $HOMEDIR/$user/conf/mail/$domain/*
|
||||||
chmod 771 /etc/$MAIL_SYSTEM/domains/$domain_idn
|
chmod 771 /etc/$MAIL_SYSTEM/domains/$domain_idn
|
||||||
chmod 770 $HOMEDIR/$user/mail/$domain_idn
|
chmod 770 $HOMEDIR/$user/mail/$domain_idn
|
||||||
|
chown -R $MAIL_USER:mail $HOMEDIR/$user/conf/mail/$domain
|
||||||
# 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 -R dovecot:mail $HOMEDIR/$user/conf/mail/$domain/passwd
|
||||||
chown $user:mail $HOMEDIR/$user/mail/$domain_idn
|
chown $user:mail $HOMEDIR/$user/mail/$domain_idn
|
||||||
|
fi
|
||||||
|
|
||||||
# Update counters
|
# Update counters
|
||||||
update_object_value 'mail' 'DOMAIN' "$domain" '$ACCOUNTS' "$accs"
|
update_object_value 'mail' 'DOMAIN' "$domain" '$ACCOUNTS' "$accs"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue