使用 TELNET 和 PHP 检查是不是存在电子邮件
Posted
技术标签:
【中文标题】使用 TELNET 和 PHP 检查是不是存在电子邮件【英文标题】:Check if a email exists with TELNET and PHP使用 TELNET 和 PHP 检查是否存在电子邮件 【发布时间】:2012-02-25 13:55:27 【问题描述】:我在 *** 上看过一些关于如何检查电子邮件是否存在的教程,但我不太明白如何...
方法一
基本上我必须在 cmd.exe 中运行以下命令
telnet gmail-smtp-in.l.google.com 25
helo
mail from: <youremail@gmail.com>
rcpt to: <mailtocheck4@gmail.com>
如果回复是“OK”,那么我们就收到了一封很好的电子邮件。我将所有这些都插入到一个 .bat 文件中,而 bat 文件所做的只是连接到 telnet 并完成...
方法 2
使用这个 http://www.geckotribe.com/php-telnet/#usage 连接到telnet,但我不知道我应该提供什么密码
<?php
require_once "PHPTelnet.php";
$telnet = new PHPTelnet();
// if the first argument to Connect is blank,
// PHPTelnet will connect to the local host via 127.0.0.1
$result = $telnet->Connect('mail.gmail.com','usr','password');
if ($result == 0)
$telnet->DoCommand('helo', $result);
// NOTE: $result may contain newlines
echo $result;
$telnet->DoCommand('another command', $result);
echo $result;
// say Disconnect(0); to break the connection without explicitly logging out
$telnet->Disconnect();
?>
你们能帮帮我吗?
【问题讨论】:
我怀疑这只适用于检查 gmail 帐户是否存在... 如果存在,你想检查什么?您想知道某个特定的电子邮件地址是否有效吗?或者想知道您是否可以通过特定帐户发送?或者是其他东西?无论哪种方式,我都怀疑您的两种方法中的任何一种都适用于 Gmail,我很确定它们需要 TLS 用于 SMTP... 我必须知道是否有用户向我提供了一个真实的电子邮件地址,而不是像 fake243241addres423432243@yahoo.com 这样的虚假电子邮件地址,从正则表达式的角度来看,女巫很好,但是...... 您找到解决方案了吗?我现在的情况和你一样。 【参考方案1】:rcpt to
之后的 ok 确认不验证电子邮件是否存在。它仅表示您输入的电子邮件采用有效的电子邮件格式。只有不退回邮件,您才会知道该电子邮件是否不存在。
【讨论】:
我尝试了几封电子邮件,看来.bat确实检查了电子邮件的完整性 尝试使用不同的 smtp 服务器,我不确定基本 telnet 是否会因 smtp 服务器而异,但很有可能不会。在 Exchange 服务器上,默认情况下,它只允许在同一域内设置rcpt to
,因此如果没有则拒绝。尝试使用rcpt to
上的虚构电子邮件地址进行检查
即使在 gmail 的 Web 界面上,您也不受限于使用虚构的收件人电子邮件。无论如何它都会反弹,但协议接受它。以上是关于使用 TELNET 和 PHP 检查是不是存在电子邮件的主要内容,如果未能解决你的问题,请参考以下文章