我的公司正在租用很多IP。我们的客户主要是邮寄者。在IP租约后,有时它们会让IP无法使用,因为IP在Yahoo,Gmail,AOL等某些提供商处被阻止。使用PHP和telnet的SMTP服务器可用性
目前,我们通过绑定IP并运行来自CentOS系统的telnet
命令像这样的:
telnet -b $IP smtp.gmail.com 25
,并得到输出,如果是220 OK,或者其他什么东西,将表明,IP是不是dirty
。
我在找的是一个PHP脚本,或者第一个想法是如何实现的。 基本上,我们会绑定IP的,PHP会检查连接的输出并写入一个csv文件。
我在过去做过大量的PHP项目,但没有什么相似之处。任何想法从哪里开始? 感谢您的建议。
编辑
由于我的调查,我能够做这样的事,
$eol= system("nc -4 -w 2 -s $Binded_IP smtp.gmail.com 25", $output);
var_dump($output);
,并得到这样的输出:
-bash-4.2$ php script.php
220 smtp.gmail.com ESMTP 13sm2795405wml.25 - gsmtp
我试图用netcat
代替远程登录。这是自变量,对那些谁不熟悉netcat的含义:
-4 to bind only IPv4
-s Source IP to bind to
-w 2 Timeout
但问题是我无法找到一个方法来关闭连接,它只是挂出,并保持开放。如果我找到一种方法来关闭连接,我可以在文件中存储$输出,过滤SMTP状态码,并继续使用第二个IP并检查它。
难道你不能只通过PHP的exec()运行这个?或者,也许更好,只需要在文本文件或其他东西中运行IP地址的bash脚本? – junkfoodjunkie
@junkfoodjunkie是的,我认为bash也是如此,但得到了stucked如何终止并获得现有连接的输出 – fugitive
此脚本在这里应该有助于http://stackoverflow.com/questions/3675897/how-to-check-by- php-if-my-script-is-connecting-to-smtp-server – unixmiah