Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><a href="https://stackoverflow.com/questions/3024819/how-do-i-check-if-an-email-address-is-valid-without-sending-anything-to-it/3024903#3024903">bucabay's</a> answer is the way forward. What a library like that essentially does is checking for existing DNS record for (mail) servers at specified domains (A, MX, or AAAA). After that, it do what's termed callback verification. That's where you connect to the mail server, tell it you want to send to a particular email address and see if they say OK.</p> <p>For callback verification, you should note greylisting servers say OK to everything so there is no 100% guarantee possible without actually sending the emails out. Here's some code I used when I did this manually. It's a patch onto the email address parser from <a href="http://code.iamcal.com/php/rfc822/" rel="nofollow noreferrer">here</a>.</p> <pre><code> # # Email callback verification # Based on http://uk2.php.net/manual/en/function.getmxrr.php # if (strlen($bits['domain-literal'])){ $records = array($bits['domain-literal']); }elseif (!getmxrr($bits['domain'], $mx_records, $mx_weight)){ $records = array($bits['domain']); }else{ $mxs = array(); for ($i = 0; $i &lt; count($mx_records); $i++){ $mxs[$mx_records[$i]] = $mx_weight[$i]; } asort($mxs); $records = array_keys($mxs); } $user_okay = false; for ($j = 0; $j &lt; count($records) &amp;&amp; !$user_okay; $j++){ $fp = @fsockopen($records[$j], 25, $errno, $errstr, 2); if($fp){ $ms_resp = ""; $ms_resp .= send_command($fp, "HELO ******.com"); $ms_resp .= send_command($fp, "MAIL FROM:&lt;&gt;"); $rcpt_text = send_command($fp, "RCPT TO:&lt;" . $email . "&gt;"); $ms_resp .= $rcpt_text; $ms_code = intval(substr($rcpt_text, 0, 3)); if ($ms_code == 250 || $ms_code == 451){ // Accept all user account on greylisting server $user_okay = true; } $ms_resp .= send_command($fp, "QUIT"); fclose($fp); } } return $user_okay ? 1 : 0; </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload