#!/bin/sh . /etc/mailconfig check_mail() { mail=$1 domain=`echo $mail | awk -F '@' '{ print $2 }'` if [ "$domain" != `hostname` ]; then echo "bad domain" exit 1 fi; mail_exist=`egrep "$mail" $PASSWD_FILE` if [ -z $mail_exist ]; then print "This address doesn't exist" exit 1 fi } check_alias() { mail=$1 while read line; do alias=`echo $line | awk -F ':' '{ print $1 }'` isvmail=`echo $line | awk -F ':' '{ print $2 }'` if [ "$mail" = "$alias" ] && [ "$isvmail" != " vmail" ]; then echo "Address already exist in alias!" exit 2; fi; done < $ALIAS_FILE } check_app_mail() { mail=$1 while read line; do if [ "$mail" == "$line" ]; then echo "Adress already exist" exit 2; fi; done < $APP_MAIL } add_alias() { print "$2":" $1" >> "$ALIAS_FILE" } del_alias() { while read line; do if [ "$1: $2" = "$line" ]; then cat "$ALIAS_FILE" | grep -w -v -e "$1" > /tmp/alias.tmp mv /tmp/alias.tmp "$ALIAS_FILE" fi done < "$ALIAS_FILE" } usage(){ print "This program ask 3 arguments : \n" print "First is email with domain name of this host second is add or del for \n" print "add or delete an alias " print "\t$0 email-adresse del alias@`hostname`\n" print "Other example:\n\t $0 test@`hostname` add myalias@`hostname` " print "This script require root privilèges" } if [ `id -u` -ne 0 ]; then usage exit 4; fi if [ -z $1 ]; then usage exit 3; fi if [ -z $2 ]; then usage exit 3; fi check_mail $1 case $2 in "add") check_alias $3 check_app_mail $3 add_alias $1 $3 smtpctl update tables virtuals ;; "del") del_alias $3 $1 smtpctl update table virtuals ;; *) usage exit 4; ;; esac