pywallter/scripts/set_mail_alias

111 lines
1.9 KiB
Bash
Executable File

#!/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