使用Bash验证MX的电子邮件地址

时间:2018-03-05 17:40:59

标签: bash email unix smtp telnet

我想使用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;
&#13;
&#13;

0 个答案:

没有答案