2017-12-09 28 views
0

email-checkerを使用して電子メールの確認を行います。私はemailidを掲示したいと思います。投稿されたページからそれを取り消したいのですが、どちらかの回答が不良または成功です。投稿されたページはhttps://email-checker.net/checkです。ここで値を投稿してPHPで返信する方法

が私のコードです:

$curl_connection = curl_init(); 
curl_setopt($curl_connection, CURLOPT_URL, 'https://www.bulkemailchecker.com/free-email-checker/'); 
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30); 
curl_setopt($curl_connection, CURLOPT_FRESH_CONNECT,true); 
curl_setopt($curl_connection, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36"); 
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl_connection, CURLOPT_HEADER, false); 
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false); 
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, true); 
curl_setopt($curl_connection, CURLOPT_POST, true); 
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string); 
$data=curl_exec($curl_connection); 

誰も私を助けることができますか?

+0

そのサービスに関するメモ。私はちょうど私のドメイン上の4つの異なるアドレスでテストしました(私はすべてのアドレスをキャッチするので、これまで何を書いています、私は電子メールを取得します)。 2人は「不明」で、2人が妥当であると教えてくれました。私はそれを信用しないだろう。メールを確認する場合は、確認メールを送信してください。 –

+0

あなたは解析コードを投稿していません。オプションを設定して 'curl'を実行する呼び出しだけです。 [良い質問をするにはどうすればよいですか]をご覧ください(https://stackoverflow.com/help/how-to-ask) – chb

+0

コードのURLは、あなたのテキストに記載されているURLと同じではありません。 –

答えて

0

最初のURLにGETリクエストを行い、ヘッダにあなたはクッキーのセッションIDを受信すると、HTMLでは、あなたは、_csrfと呼ばれるCSRF tokenを受信の両方を保存し、クッキーの両方でhttps://email-checker.net/checkに新しい要求を行いますセッション、csrfトークン、および電子メールを、emailという名前のパラメータ(適切に)に、​​エンコーディングのHTTP POSTリクエストを使用して送信します。あなたの答えは、ID results-wrapperで受け取ったhtmlの要素のテキスト内容になります。 hhb_curlを使用して

実装例:

<?php 
declare(strict_types = 1); 
const EMAIL = '[email protected]'; 
require_once ('hhb_.inc.php'); 
$hc = new hhb_curl ('', true); 
$html = $hc->exec ('https://email-checker.net')->getStdOut(); 
$domd = @DOMDocument::loadHTML ($html); 
$xp = new DOMXPath ($domd); 
$csrf_token = $xp->query ('//input[@name="_csrf"]')->item (0)->getAttribute ("value"); 
$html = $hc->setopt_array (array (
     CURLOPT_URL => 'https://email-checker.net/check', 
     CURLOPT_POST => 1, 
     CURLOPT_POSTFIELDS => http_build_query (array (
       '_csrf' => $csrf_token, 
       'email' => EMAIL 
     )) 
))->exec()->getStdOut(); 
$domd = @DOMDocument::loadHTML ($html); 
$xp = new DOMXPath ($domd); 
$result = trim ($xp->query ('//*[@id="results-wrapper"]')->item (0)->textContent); 
var_dump ($result); 

は現在、出力:string(30) "OK The email address is valid." - [email protected]が有効であることを意味します。あなたの代わりに

  • 警報出力Limit Exceeded Only 5 lookups per hour is allowed. Try Premium Planを得るでしょう、時間足らずで5回の試行後、

    • 警告を(ライン3を参照)、その結果は非常に信頼性がないように見えます。実際に何かの電子メールアドレスを検証する必要がある場合は、検証URLを電子メールに送信してください。

  • +0

    ありがとうございました。しかし、私は問題があります。 私はあなたのコードを試してみましたが、毎回エラーが出ます(SMTPサーバータイムアウト)。 [email protected]のような電子メールを入力すると、OKを返します。 –

    +0

    @MehmetAcarええ、それは彼らのチェッカーのバグであるようだ。信頼できない結果について 'admin @ email-checker.net'に問い合わせてください。 – hanshenrik

    関連する問題