dockerfiles/net/email/bashfile/addmailuser

46 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# Addmailuser @3846masa
trap 'echo ""; stty echo; exit -1;' SIGINT
if [[ $# -ne 1 ]]; then
echo >&2 "Usage: $0 user@example.com"
exit 1
fi
if ! [[ $1 =~ ^[a-zA-Z0-9]+@[^@]+ ]]; then
echo >&2 "$0: Invalid value."
exit 1
else
MAILADDR=$1
fi
if `grep ^${MAILADDR} /etc/postfix/vmaps > /dev/null 2>&1`; then
echo >&2 "$0: ${MAILADDR} is already registed."
exit 1
fi
echo -n "Enter user password: "; read -s PASSWD; echo "";
echo -n "Retype user password: "; read -s PASSWD_RETYPE; echo "";
if [[ $PASSWD != $PASSWD_RETYPE ]]; then
echo "Sorry, passwords do not match.";
exit 1;
fi
PASSWD_MD5=$(echo -e "${PASSWD}\n${PASSWD}" | doveadm pw)
echo "${MAILADDR}:${PASSWD_MD5}:5000:5000" >> /etc/dovecot/passwd
IFS='@' eval 'USERINFO=($MAILADDR)'
echo "${MAILADDR} ${USERINFO[1]}/${USERINFO[0]}/" >> /etc/postfix/vmaps
postmap /etc/postfix/vmaps
mkdir -p "/home/vmail/${USERINFO[1]}/${USERINFO[0]}/"{new,cur,tmp}
chmod 700 /home/vmail/ -R
chown vmail.vmail /home/vmail/ -R
postfix reload > /dev/null 2>&1
dovecot reload
echo "Added ${MAILADDR}"