mirror of
https://git.myvelabs.com/docker/myvemail.git
synced 2025-12-18 18:56:19 +00:00
First commit
This commit is contained in:
commit
7b58f82156
21 changed files with 1951 additions and 0 deletions
96
build/run/bin/add-user
Executable file
96
build/run/bin/add-user
Executable file
|
|
@ -0,0 +1,96 @@
|
|||
#!/usr/bin/env bash
|
||||
# Exit if any errors pop up
|
||||
set -e
|
||||
|
||||
# Array of available domains
|
||||
domains=(${MYVEMAIL_DOMAIN})
|
||||
domains+=(${MYVEMAIL_ADDMX//,/ })
|
||||
|
||||
# Check if postfixadmin db has been installed
|
||||
if [ ! -d /var/lib/mysql/${MYVEMAIL_POSTFIXADMIN_DBNAME}/ ]
|
||||
then
|
||||
echo "Run setup script before proceeding"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if mariadb is active
|
||||
if ! ps aux | grep -q mariadb
|
||||
then
|
||||
mariadbd --user=root --datadir=/var/lib/mysql/ &
|
||||
until mariadb --user=root --database=mysql -e "show tables;" >/dev/null
|
||||
do
|
||||
sleep 1
|
||||
done
|
||||
fi
|
||||
|
||||
# Proceed only if postfixadmin db is installed
|
||||
if mariadb --user=root --database=${MYVEMAIL_POSTFIXADMIN_DBNAME} -e "select * from domain;" | grep -q ${MYVEMAIL_DOMAIN}
|
||||
then
|
||||
# Mail account domain
|
||||
echo -e "\e[1;34mChoose an available domain from the following: ${domains[@]}\e[0m"
|
||||
until [ ${MYVEMAIL_ADDUSER_DOMAIN} ] && [[ ${domains[@]} =~ ${MYVEMAIL_ADDUSER_DOMAIN} ]]
|
||||
do
|
||||
read -r -p 'Domain: ' MYVEMAIL_ADDUSER_DOMAIN
|
||||
if [ -z "${MYVEMAIL_ADDUSER_DOMAIN}" ]
|
||||
then
|
||||
echo -e '\n\e[1;31mField cannot be empty, try again\e[0m'
|
||||
elif ! [[ ${domains[@]} =~ ${MYVEMAIL_ADDUSER_DOMAIN} ]]
|
||||
then
|
||||
echo -e '\n\e[1;31mChoose a valid domain\e[0m'
|
||||
fi
|
||||
done
|
||||
|
||||
# Mail username
|
||||
if [ -z ${MYVEMAIL_MAIL_USER} ]
|
||||
then
|
||||
echo -e '\n\e[1;34mType in your email username\e[0m'
|
||||
until [ ${MYVEMAIL_MAIL_USER} ]
|
||||
do
|
||||
read -r -p 'Username: ' MYVEMAIL_MAIL_USER
|
||||
[ ${MYVEMAIL_MAIL_USER} ] || echo -e '\n\e[1;31mUsername cannot be empty, try again\e[0m'
|
||||
done
|
||||
echo -e '\n\e[1;32mMail user '${MYVEMAIL_MAIL_USER}'@'${MYVEMAIL_ADDUSER_DOMAIN}' has been saved\e[0m\n'
|
||||
fi
|
||||
|
||||
# Mail account password
|
||||
echo -e '\e[1;34mCreate a password for your mail account\e[0m'
|
||||
until [ "${MYVEMAIL_MAIL_PASS}" = "${MYVEMAIL_MAIL_PASS2}" -a "${MYVEMAIL_MAIL_PASS}" ]
|
||||
do
|
||||
read -s -r -p 'Mail password: ' MYVEMAIL_MAIL_PASS
|
||||
read -s -r -p $'\nVerify mail password: ' MYVEMAIL_MAIL_PASS2
|
||||
if [ -z "${MYVEMAIL_MAIL_PASS}" ]
|
||||
then
|
||||
echo -e '\n\n\e[1;31mPassword field cannot be empty, try again\e[0m'
|
||||
elif [ "${MYVEMAIL_MAIL_PASS}" != "${MYVEMAIL_MAIL_PASS2}" ]
|
||||
echo -e '\n\n\e[1;31mPasswords did not match, try again\e[0m'
|
||||
then
|
||||
fi
|
||||
done
|
||||
echo -e '\n\n\e[1;32mMail password has been saved\e[0m\n'
|
||||
|
||||
# Catch-all alias
|
||||
until [[ ${MYVEMAIL_USER_CATCHALL} = [yYnN] ]]
|
||||
do
|
||||
echo -n -e '\e[1;34mWill the user use a catch-all alias?\e[0m '
|
||||
read -n 1 -r MYVEMAIL_USER_CATCHALL
|
||||
echo
|
||||
echo
|
||||
if ! [[ ${MYVEMAIL_USER_CATCHALL} = [yYnN] ]]
|
||||
then
|
||||
echo -e '\e[1;31mNot a valid answer, type "y" or "n"\e[0m'
|
||||
fi
|
||||
done
|
||||
|
||||
# Create Postfixadmin mail users
|
||||
bash /usr/share/webapps/postfixadmin/scripts/postfixadmin-cli mailbox add "${MYVEMAIL_MAIL_USER}@${MYVEMAIL_ADDUSER_DOMAIN}" --active --password "${MYVEMAIL_MAIL_PASS}" --password2 "${MYVEMAIL_MAIL_PASS}" -q
|
||||
|
||||
# Create Postfixadmin mail catch-all alias
|
||||
if [[ ${MYVEMAIL_USER_CATCHALL} = [yY] ]]
|
||||
then
|
||||
bash /usr/share/webapps/postfixadmin/scripts/postfixadmin-cli alias add "*@${MYVEMAIL_ADDUSER_DOMAIN}" --goto "${MYVEMAIL_MAIL_USER}@${MYVEMAIL_ADDUSER_DOMAIN}" --active -q
|
||||
fi
|
||||
else
|
||||
echo "Postfixadmin database does not seem to be installed"
|
||||
echo "Run setup script before proceeding"
|
||||
exit 1
|
||||
fi
|
||||
Loading…
Add table
Add a link
Reference in a new issue