si vous avez suivi mes précedents billets dont ceux pour la mise en place d'un serveur de mail ici et celui pour l'automatisation de création d'une boite mail ici . Le précedent script n'était pas totalement automatisé ceci à été corrigé dans cette version.
D'autres améliorations sont à prévoir ... N'hésitez pas à me faire un petit retour 
/* #!/bin/bash user=db_user db=db_name pass=password uid=5000 gid=5000 home=/var/vmail/%d/%n quotauser=100000 grep=/bin/grep usage () { echo "Usage :syntaxe : $0 [options] --create Create User --delete Delete User --print Print user --check check if user exist in the databases Exemple : $0 --create user@domain:100000 " exit 1 } #Function create user createuser() { domain_id=`echo "SELECT id from virtual_domains where name LIKE '"$domainame"' "| mysql -u "$user" -p"$pass" "$db" |tail -n 1` email=`echo "$1" | cut -d : -f 1 ` quota=`echo "$1" | cut -d : -f 2` quotatest=`echo "$quota" | "$grep" [^[0-9] |wc -l` if [ "$quotatest" -ge 1 ] then quota="$quotauser" fi passuser=$(apg -m 10 |head -n 1) create=`echo "INSERT INTO virtual_users (id,domain_id,password,email,quota_kb,quota_messages,gid,uid,home) VALUES (NULL,"$domain_id",MD5('"$passuser"'),'"$email"',"$quota","0","$gid","$uid",'"$home"')" | mysql -u "$user" -p"$pass" "$db" ` echo "Les identifiants sont les suivants "$email" : "$passuser"" } #Function delete user deleteuser() { delete=`echo "DELETE FROM virtual_users WHERE email='"$1"'" | mysql -u "$user" -p"$pass" "$db"` } #Print User printuser() { print=`echo "select email, domain_id FROM virtual_users where email='"$1"'" | mysql -u "$user" -p"$pass" "$db"` numberline=`echo "$print" | wc -l ` if [ "$numberline" -eq 1 ] then echo "User does not exist " else echo "$print" fi } #Function create domain if not exist checkdomain() { domainame=`echo "$1" |cut -d @ -f 2|cut -d : -f 1` checkdom=`echo "SELECT name from virtual_domains where name LIKE '"$domainame"' "| mysql -u "$user" -p"$pass" "$db" ` numberlinedom=`echo "${checkdom}" | wc -l ` if [ "$numberlinedom" -eq 1 ] then echo "Domain doesn't exist " read -p "Can you create this domain "$domainame" yes or no ? " answer case "$answer" in yes) createdomain=`echo "INSERT INTO virtual_domains (id,name) VALUES (NULL,'"$domainame"')" | mysql -u "$user" -p"$pass" "$db" ` ;; no) echo "The domain "$domainame" do not created" exit 0 ;; *) echo "This option doesn't exit" checkdomain "$1" ;; esac fi } upquota() { #E for Email equota use know user for request updatequota equota=`echo "$1" | cut -d : -f 1` upquotas=`echo "$1" | cut -d : -f 2` updatequota=`echo "UPDATE virtual_users SET quota_kb="$upquotas" WHERE email='"$equota"' LIMIT 1 "| mysql -u "$user" -p"$pass" "$db"` } compt=0 case "$1" in --print) shift printuser "$1" ;; --create) args=`expr "$#" - 1 ` while [ "$compt" -lt "$args" ] ; do shift checkdomain "$1" createuser "$1" compt=`expr "$compt" + 1 ` done ;; --delete) args=`expr "$#" - 1 ` while [ "$compt" -lt "$args" ] ; do shift deleteuser "$1" compt=`expr "$compt" + 1 ` done ;; --upquota) args=`expr "$#" - 1 ` while [ "$compt" -lt "$args" ] ; do shift upquota "$1" compt=`expr "$compt" + 1 ` done ;; *) usage ;; esac */

Derniers commentaires