diff --git a/bin/vmail-aliases-add.sh b/bin/vmail-aliases-add.sh index 41097ac..a9de15d 100755 --- a/bin/vmail-aliases-add.sh +++ b/bin/vmail-aliases-add.sh @@ -57,9 +57,16 @@ elif [[ $mbox_id -gt 0 ]]; then # verified mbox, check for existing alias existing_alias=`mysql --defaults-extra-file=$MYSQL_CONNECTION_INFO_FILE -s -r -N -e "SELECT vm_aliases.id FROM vm_aliases WHERE vm_aliases.alias='$alias' AND vm_aliases.mbox_id='$mbox_id';"` if [[ -z $existing_alias ]]; then - # existing alias does not exist, add new one now - dbcmd="mysql --defaults-extra-file=$MYSQL_CONNECTION_INFO_FILE -e 'INSERT INTO vm_aliases SET vm_aliases.alias=\"$alias\", vm_aliases.mbox_id=\"$mbox_id\";'" - eval $dbcmd + # existing alias does not exist, make sure mbox with alias name does not exist + alias_mbox_id=`mysql --defaults-extra-file=$MYSQL_CONNECTION_INFO_FILE -s -r -N -e "SELECT id FROM vm_mboxes WHERE domain_id='$domain_id' AND mbox='$alias';"` + if [[ -z $alias_mbox_id ]]; then + # mailbox does not exist, add alias + dbcmd="mysql --defaults-extra-file=$MYSQL_CONNECTION_INFO_FILE -e 'INSERT INTO vm_aliases SET vm_aliases.alias=\"$alias\", vm_aliases.mbox_id=\"$mbox_id\";'" + eval $dbcmd + else + echo "ERROR: Email account $alias@$domain exists, can't create alias with the same name." + exit 1 + fi else echo "ERROR: Alias for $alias To $email already exists." exit 1