Php determines whether the email address exists. php email address _ PHP Tutorial

Source: Internet
Author: User
Tags php email mx record
Php determines whether an email address exists. Php can determine whether a mailbox address exists. There are many methods for verifying the mailbox address in php mailbox address. it is commonly used to write regular expressions by yourself, but regular expressions are much more troublesome, I use PHP to determine whether the email address exists.

PHP provides many methods to verify the email address. it is commonly used to write regular expressions by yourself. However, regular expressions are much more troublesome. I have provided PHP methods for verification.

Filter_var

Filter_var is a built-in variable filtering method in PHP. It provides many practical filters that can be used to verify integers, floating point numbers, mailboxes, URLs, and MAC addresses.

For more information about filters, see filters. validate.

Filter_var if false is returned, the variable cannot pass the filter, that is, it is invalid.

$email = "lastchiliarch@163.com";
 
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
 
 
$email = "asb";
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
 
$email = "1@a.com";
var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
 
output:
 
 
string(21) "lastchiliarch@163.com"
bool(false)
string(7) "1@a.com"

False is returned for an invalid email address format such as asb, but it is still slightly defective if the 1@a.com passes.

But the general regular also through will think 1@a.com is a legitimate mailbox, then what method can be more accurate verification?

Checkdnsrr

Checkdnsrr is actually used to query the DNS records of the specified host. we can use it to verify whether the mailbox exists.

The MX record does not exist for 1@a.com.

$ email = "lastchiliarch@163.com";
   var_dump (checkdnsrr (array_pop (explode ("@", $ email)), "MX"));
   $ email = "1@a.com";
   var_dump (checkdnsrr (array_pop (explode ("@", $ email)), "MX"));
 
   Output:
   bool (true)
   bool (false)

We can see that it is perfect. The only drawback is that it is too slow. after all, it is a network request. Therefore, it is not suitable for synchronous verification of a large number of mailboxes.

Filter_var + checkdnsrr

We can check filter_var and checkdnsrr. for most illegal emails, the filter_var will be suspended, and the rest will be reused.

Checkdnsrr further judgment.

$ email_arr = array ("lastchiliarch@163.com", "1@a.com");
   foreach ($ email_arr as $ email) {
     if (filter_var ($ email) === false) {
       echo "invalid email: $ email \ n";
       continue;
     }
 
     if (checkdnsrr (array_pop (explode ("@", $ email)), "MX") === false) {
       echo "invalid email: $ email \ n";
       continue;
     }
   }
 
   Output: invalid email: 1@a.com

However, it should be noted that, because we only check MX records, we can only judge that 163.com exists, but it cannot be said that the user lastchiliarch exists.

To determine the existence of a mailbox more accurately, you can only connect to the smtp server for verification.

The following is a php email address regular expression verification. The details are as follows:

<? php
  header ("Content-Type: text / html; charset = UTF-8");
  $ reply = "";
  if (isset ($ _ POST ["email_address"]))
  {
   $ email_address = $ _POST ["email_address"];
   $ pattern = "/ ^ ([0-9A-Za-z \\ -_ \\.] +) @ ([0-9a-z] + \\. [az] {2,3} (\\. [az] {2})?) $ / i ";
   if (preg_match ($ pattern, $ email_address))
   {
    $ reply = "The email address you entered is valid

\ n ";
    $ user_name = preg_replace ($ pattern, "$ 1", $ email_address);
    $ domain_name = preg_replace ($ pattern, "$ 2", $ email_address);
    $ reply. = "User name:". $ user_name. "
\ n ";
    $ reply. = "Domain Name:". $ domain_name. "
\ n \ n ";
   }
   else
   {
    $ reply = "The email address you entered is not valid";
   }
  }
?>






Email Address Verifier

<? php
  echo $ reply;
?> 

I hope you will like this article and it will help you.

Articles you may be interested in:
  • Implementation and explanation of regular expressions for email addresses in php
  • Php code for mailbox collection (capture the email address on the webpage)
  • Php curl-based mailbox address retrieval
  • Implementation of js and php Email Address Verification
  • Php uses regular expressions to batch capture email addresses on webpages
  • Php email address regular expression verification



There are many ways to verify the email address in Composer PHP. The most common method is to write regular expressions by yourself. However, regular expressions are a lot of trouble. PHP comes with me...




Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.