#!/bin/sh . /etc/mailconfig check_domain() { mail=$1 domain=`echo $mail | awk -F '@' '{ print $2 }'` if [ "$domain" != `hostname` ]; then echo "bad domain" exit 1 fi; } check_alias() { alias=$1 echo "$alias" alias_exist=`egrep "$alias" "$ALIAS_FILE"` echo "$alias_exist" if [ "$alias_exist" != "" ]; then echo "Address already exist in alias!" exit 1 fi } 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" } check_mail_exist(){ mail="$2" mail_exist=`egrep '"$mail"' $PASSWD_FILE` if [ "$mail_exist" != "" ]; then print "Address already exist" exit 1 fi } check_alias_exist(){ alias_c="$1: $2" alias_exist=`egrep "$alias_c" "$ALIAS_FILE" ` if [ -z "$alias_exist" ]; then print "This alias doesn't exist" exit 2 fi } del_alias() { alias_line="$1: $2" egrep -v "$alias_line" "$ALIAS_FILE" > /tmp/alias.tmp mv /tmp/alias.tmp "$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_domain $1 case $2 in "add") check_mail_exist $3 check_alias $3 check_app_mail $3 add_alias $1 $3 smtpctl update table virtuals ;; "del") check_alias_exist $3 $1 del_alias $3 $1 smtpctl update table virtuals ;; *) usage exit 4; ;; esac