私の会社はたくさんのIPを借りています。そして私たちのクライアントは主にメーラです。 IPリースの後、Yahoo、Gmail、AOLなどの特定のプロバイダでIPがブロックされることがあるため、IPを使用できなくなることがあります。PHPとtelnetを使用したSMTPサーバーの入手
現在、私たちはCentOSシステムからIPをバインドしてtelnet
コマンドを実行することにより、このような:
telnet -b $IP smtp.gmail.com 25
そして、それはOK、220、またはIPがdirty
ではないことを示すことになる何か他のものであれば、出力を取得します。
私が探しているのは、PHPスクリプト、またはこれがどのようにできるかというアイデアです。 基本的に、私たちはIPをバインドし、PHPは接続の出力をチェックし、例えばcsvファイルに書き出します。
私は過去に多くのPHPプロジェクトを行ってきましたが、それに似ていません。どこから始めたらいいですか? ありがとうございます。
EDIT
私の調査により、私は、このような何かを
$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
にしようとしていますtelnet。
-4 to bind only IPv4
-s Source IP to bind to
-w 2 Timeout
しかし、問題は、私はその接続をクローズする方法を見つけることができないで、それだけでたむろし、開いたままに:これはnetcatをに慣れていない人に、引数の意味です。接続を閉じる方法が見つかった場合は、$出力をファイルに保存し、SMTPステータスコードをフィルタリングし、2番目のIPを継続してチェックすることができます。
これはPHPのexec()で実行できませんか?あるいは、おそらくもっと良いのですが、テキストファイルなどでIPを通るbashスクリプトを実行するだけです。 – junkfoodjunkie
@junkfoodjunkieはい、私はbashも考慮しましたが、終了して既存の接続の出力を取得する方法を固執しました – fugitive
このスクリプトはここに役立ちますhttp://stackoverflow.com/questions/3675897/how-to-check-by- php-if-my-script-smtp-server-to-smtp-server – unixmiah