【问题标题】:bash and telnet to test an emailbash 和 telnet 测试电子邮件
【发布时间】:2012-12-28 21:06:33
【问题描述】:

我正在尝试确定电子邮件地址是否有效。

我已经通过使用 telnet 完成了这个,见下文

$ telnet mail.example.com 25
Trying 0.0.0.0...
Connected to mail.example.com.
Escape character is '^]'.
220 mail.example.com Mon, 14 Jan 2013 19:01:44 +0000
helo email.com
250 mail.example.com Hello email.com [0.0.0.0]
mail from:blake@email.com
250 OK
rcpt to:gfdgsdfhgsfd@example.com
550 Unknown user

通过这个 550 请求,我知道该地址在邮件服务器上无效...如果它有效,我会得到如下响应:

250 2.1.5 OK 

如何在 shell 脚本中自动执行此操作?到目前为止,我有以下内容

#!/bin/bash
host=`dig mx +short $1 | cut -d ' ' -f2 | head -1`
telnet $host 25 

谢谢!

【问题讨论】:

  • 值得注意的是,大多数大型邮件提供商,包括 GMail、Hotmail 和 Yahoo Mail 都不允许使用这种技术来防止垃圾邮件发送者获取真实帐户。
  • @that other guy I've actually tried with gmail and it does work, just in a different format ...... code mail from: 转至:code

标签: bash shell unix command telnet


【解决方案1】:

尝试这样做:

[[ $4 ]] || {
    printf "Usage\n\t$0 <domain> <email> <from_email> <rcpt_email>\n"
    exit 1
}
{
    sleep 1
    echo "helo $2"
    sleep 0.5
    echo "mail from:<$3>"
    sleep 0.5
    echo "rcpt to:<$4>"
    echo
} | telnet $1 25 |
    grep -q "Unknown user" &&
    echo "Invalid email" ||
    echo "Valid email"

用法:

./script.sh domain email from_email rcpt_email

【讨论】:

    【解决方案2】:

    要更改的变量

    BODY="open realy smtp test"
    SMTP-SRV="server_ip"
    SMTP-PORT="25"
    RCPT="name@domain"
    SRC="name@domain"
    

    然后在 bash 中运行

    /bin/nc ${SMTP-SRV} ${SMTP-PORT} << EOL
    ehlo example_domain.com
    mail from:${SRC}
    RCPT to:${RCPT}
    data
    From:${SRC}
    To:${RCPT}
    subject: Telnet test
    ${BODY}
    .
    quit
    EOL
    

    【讨论】:

      【解决方案3】:

      您始终可以将命令逐行输入到纯文本文件中,就像您在命令行上键入它们一样。然后你可以使用类似的东西

      cat commands.txt | telnet mail.example.com 25 | grep -i '550 Unknown User'
      

      由于您可能需要将此文本文件视为模板,(我假设您可能希望参数化电子邮件地址)您可能需要插入对 awk 的调用以获取 'cat commands. txt' 并插入您的电子邮件地址。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-05-26
        • 2012-03-14
        • 2010-09-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-11
        • 1970-01-01
        相关资源
        最近更新 更多