Tuesday 11 March 2008

email address validation script unix

#!/bin/sh
# check email address is valid

E_BADARGS=65
E_NOFILE=66
E_MAIL_EMPTY=67
E_MAIL_FORMAT=68

error_found() {
ERROR_CODE=$1
case "$ERROR_CODE" in
65 ) echo `date '+%d/%m/%Y-%H:%M:%S'`"\n Argument error!..." >> mail.log;;
66 ) echo `date '+%d/%m/%Y-%H:%M:%S'`"\n No attachement found!..." >> mail.log;;
67 ) echo `date '+%d/%m/%Y-%H:%M:%S'`"\n Enter a no-empty mail address!..." >> mail.log;;
68 ) echo `date '+%d/%m/%Y-%H:%M:%S'`"\n Mail address is not valid!...Entered mail was: " "${EMAIL_ADDRESS}" >> mail.log;;
* ) echo `date '+%d/%m/%Y-%H:%M:%S'`"\n Error code not found!..." >> mail.log;;

esac
exit 0
}

REGULAR_EXP="^([A-Za-z0-9])+[A-Za-z0-9\._-]*@[a-z0-9][a-z0-9_-]*(\.[a-z0-9_-]+)*\
.([a-z]{2}|aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel)"



EMAIL_ADDRESS=`echo "$1" | tr -d ' '`

if [ -z "${EMAIL_ADDRESS}" ]; then
error_found $E_MAIL_EMPTY
elif [ ! `echo "${EMAIL_ADDRESS}" | egrep -c $REGULAR_EXP` -eq 1 ]; then
error_found $E_MAIL_FORMAT
else
echo "${EMAIL_ADDRESS}" " is valid.."
fi