IMAP/SMTP Authentication tests
Jump to navigation
Jump to search
IMAPS, SMTPS, & Submission connection test script #!/bin/bash read -p "Enter a valid remote email account to which QMT will send mail: " ruser if [ -z "$ruser" ] then echo "No remote user entered, exiting..." exit 1 fi user=postmaster host=`hostname -I` DOMAINS=/home/vpopmail/domains user=postmaster DOMAINS=/home/vpopmail/domains for domain in `ls $DOMAINS` do pass=`/home/vpopmail/bin/vuserinfo $user@$domain | grep "clear passwd: " | sed 's/clear passwd: //'` done if [ -z "$domain" ] then echo "No domain..." exit 1 fi curl -v --insecure -I imaps://${user}%40${domain}:${pass}@localhost &> ./xxx yyy=`cat ./xxx | grep "OK Logged in"` if [[ ! -z $yyy ]] then echo -n "IMAPS: $user@$domain --> " && tput setaf 2 && echo "success" && tput sgr0 else echo -n "IMAPS: $user@$domain --> " && tput setaf 1 && echo "failure" && tput sgr0 fi dswak=/usr/local/bin [ ! -f $dswak/swaks ] && \ wget -P $dswak http://www.jetmore.org/john/code/swaks/latest/swaks &> /dev/null && chown root.root $dswak/swaks && chmod +x $dswak/swaks swaks --to $ruser --from $user@$domain --server $host --port 587 --ehlo test -tls --auth login \ --auth-user $user@$domain --auth-password $pass &> ./xxx yyy=`cat xxx | grep "250 ok "` if [[ ! -z $yyy ]] then echo -n "Submission: $user@$doain --> " && tput setaf 2 && echo "success" && tput sgr0 else echo -n "Submission: $user@$domain --> " && tput setaf 1 && echo "failure" && tput sgr0 fi rm -f ./xxx swaks --to $ruser --from $user@$domain --server $host --port 465 --ehlo test -tlsc --auth login \ --auth-user $user@$domain --auth-password $pass &> ./xxx yyy=`cat xxx | grep "250 ok "` if [[ ! -z $yyy ]] then echo -n "SMTPS: $user@$domain --> " && tput setaf 2 && echo "success" && tput sgr0 else echo -n "SMTPS: $user@$domain --> " && tput setaf 1 && echo "failure" && tput sgr0 fi rm -f ./xxx Check passwords # vpopmailpasswd=`cat filepasswd` # echo "select pw_passwd from localdomain_tld where pw_name='user'" | \ mysql -u root -p$vpopmailpasswd vpopmail | grep -v pw_passwd | sed 's/\$1\$//' | cut -f1 -d"$" > saltfile # usersalt=`cat saltfile` # userpasswd=`cat fileuserpasswd` /* Put your user's password in this file */ # userhash0=`openssl passwd -1 -salt $usersalt $userpasswd` # userhash1=`echo "select pw_passwd from localdomain_tld where pw_name='user'" | \ mysql -u root -p$vpopmailpasswd vpopmail | grep -v pw_passwd` # [ "$userhash0" = "$userhash1" ] && echo "Matched passwords" || echo "Unmatched passwords" Script to test all IMAP accounts (post migration) #!/bin/bash # Change fqdn to suit fqdn=mail.whitehorsetc.com for domain in `ls /home/vpopmail/domains` do for user in `ls /home/vpopmail/domains/$domain` do pass=`/home/vpopmail/bin/vuserinfo $user@$domain | grep "clear passwd: " | sed 's/clear passwd: //'` [ ! -z $pass ] && curl -v imaps://${user}%40${domain}:${pass}@${fqdn}/ &> tmpcon && \ tmpconok=`cat tmpcon | grep "OK Logged in"` && \ [[ ! -z $tmpconok ]] && (echo "$user@$domain --> success" || echo "$user@$domain --> failed") done done rm tmpcon exit 0