v-delete-mail-domain 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. #!/bin/bash
  2. # info: delete mail domain
  3. # options: USER DOMAIN
  4. #
  5. # The function for deleting MAIL domain. By deleting it all accounts will
  6. # also be deleted.
  7. #----------------------------------------------------------#
  8. # Variable&Function #
  9. #----------------------------------------------------------#
  10. # Argument definition
  11. user=$1
  12. domain=$(idn -t --quiet -u "$2" )
  13. domain_idn=$(idn -t --quiet -a "$domain")
  14. # Includes
  15. source $VESTA/func/main.sh
  16. source $VESTA/func/domain.sh
  17. source $VESTA/conf/vesta.conf
  18. #----------------------------------------------------------#
  19. # Verifications #
  20. #----------------------------------------------------------#
  21. check_args '2' "$#" 'USER DOMAIN'
  22. is_format_valid 'user' 'domain'
  23. is_system_enabled "$MAIL_SYSTEM" 'MAIL_SYSTEM'
  24. is_object_valid 'user' 'USER' "$user"
  25. is_object_unsuspended 'user' 'USER' "$user"
  26. is_object_valid 'mail' 'DOMAIN' "$domain"
  27. is_object_unsuspended 'mail' 'DOMAIN' "$domain"
  28. #----------------------------------------------------------#
  29. # Action #
  30. #----------------------------------------------------------#
  31. # Get domain values
  32. get_domain_values 'mail'
  33. accounts=$(wc -l $USER_DATA/mail/$domain.conf|cut -f 1 -d ' ')
  34. # Deleting exim configuration files
  35. if [[ "$MAIL_SYSTEM" =~ exim ]]; then
  36. rm -f /etc/$MAIL_SYSTEM/domains/$domain_idn
  37. rm -rf $HOMEDIR/$user/conf/mail/$domain
  38. rm -rf $HOMEDIR/$user/mail/$domain_idn
  39. fi
  40. # Deleting dkim dns record
  41. if [ "$DKIM" = 'yes' ] && [ -e "$USER_DATA/dns/$domain.conf" ]; then
  42. records=$($BIN/v-list-dns-records $user $domain plain)
  43. dkim_records=$(echo "$records" |grep -w '_domainkey' | cut -f 1 -d ' ')
  44. for id in $dkim_records; do
  45. $BIN/v-delete-dns-record $user $domain $id
  46. done
  47. fi
  48. #----------------------------------------------------------#
  49. # Vesta #
  50. #----------------------------------------------------------#
  51. # Delete domain config
  52. sed -i "/DOMAIN='$domain'/ d" $USER_DATA/mail.conf
  53. rm -f $USER_DATA/mail/$domain.conf
  54. rm -f $USER_DATA/mail/$domain.pem
  55. rm -f $USER_DATA/mail/$domain.pub
  56. rm -f $USER_DATA/mail/*@$domain.msg
  57. # Decreasing domain value
  58. decrease_user_value "$user" '$U_MAIL_DOMAINS'
  59. if [ "$DKIM" = 'yes' ]; then
  60. decrease_user_value "$user" '$U_MAIL_DKMI'
  61. fi
  62. decrease_user_value "$user" '$U_MAIL_ACCOUNTS' "$accounts"
  63. # Logging
  64. log_history "deleted mail domain $domain"
  65. log_event "$OK" "$ARGUMENTS"
  66. exit