我想使用telnet到mx验证文件中的一批电子邮件地址(比如.txt)并声明收件人然后检查响应。 我需要一个脚本,从文件中读取电子邮件地址,在' @'后查找主机,查找MX,telnet(或mailcmd,无论您喜欢哪个),执行契约,然后输出结果为2个文件(有效和无效)
是的我在发布之前已经搜索了一些答案但是我在bash上是一个菜鸟并且根据我的需要修改它们对我来说是不可能的。
请帮忙!
PS:以下是我发现的内容,但我不知道如何将电子邮件地址传递给它,而且它也是通过单个MX修复的。
#!/bin/bash
# check for valid usage
if [ x$1 = 'x' ]
then
echo "Usage: $0 <email address>"
exit 1
fi
# grabbing fields
user=`echo $1 | cut -f1 -d\@`
host=`echo $1 | cut -f2 -d\@`
mxhost=`host -t mx $host | cut -f7 -d\ `
len=`echo $mxhost | wc -c`
len=`expr $len - 2`
mxhost=`echo $mxhost | cut -b1 -$len`
# compose email commands
echo -ne "helo test.com\r\n" > mailcmd
echo -ne "mail from: test\@test.com\r\n" >> mailcmd
echo -ne "rcpt to: $1\r\n" >> mailcmd
echo -ne "quit\r\n" >> mailcmd
# check for mail results
mailresult=`cat mailcmd | nc $mxhost 25| grep ^550 | wc -c`
if [ $mailresult -eq 0 ]
then
echo $1 "is valid"
exit 0
else
echo $1 "is not valid"
exit 1
fi
# clean up
rm mailcmd
&#13;