Check if an Email is valid and exists using MX Record using PHP

0
519

An email address is a unique identifier for an individual, business, or organization that allows them to send and receive electronic messages (emails) over the internet. An email address is composed of twz main parts: the local part and the domain part.

The local part is the part of the email address that comes before the @ symbol and typically represents the username or mailbox name. The domain part is the part that comes after the @ symbol and represents the domain name of the email provider, such as Gmail or Yahoo.

Email addresses are used for a variety of purposes, including communication, marketing, and account management. They are an essential component of modern communication and are used by individuals, businesses, and organizations of all sizes and industries.

Validating an Email Address

We can easily validate if the format of an email address is valid like : [email protected]..

But in this tutorial, we are checking if the email domain really exists or not using PHP. If example.com domain has MX record for email service, then we validate the email is valid.

Follow this video for complete guidance :

index.php

<style type="text/css">
  body{
    overflow: hidden;
    padding:0;
    margin: 0;
  }
  .page-wrap{
    height:100vh;
    background: teal;
  }
  .form{
    display: flex;
  }
  .form-check{
    position: absolute;
    top:50%;
    left:50%;
    transform: translate(-50%,-50%);
    width:50%;
  }
  .btn-check{
    background: #85cccc;
  }
  .result{
    color:#fff;
    margin-top:20px;
    font-size: 22px;
  }
  .form-control{
    width:70%;
    height:40px;
    font-size:16px;
    padding:10px;
  }
</style>

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.4/jquery.min.js"></script>

<div class="page-wrap">
  <form class="form-check">
    <div class="form">
      <input type="email" class="email form-control" placeholder="Email" required>
      <input type="button" value="Search" onclick="checkEmail();" class="btn-check">
    </div>
    <div class="result">Input Email to check if it is valid</div>
  </form>
</div>

<script type="text/javascript">
  $(".form-check").on('submit',function(e){
    e.preventDefault();
    checkEmail();
  });
  function checkEmail(){
    form = document.getElementsByClassName('form-check')[0];
    if(!form.checkValidity()){
      form.reportValidity();
      return false;
    }
    $(".result").html('checking........');
    email = $(".email").val();
    $.ajax({
      url:'checkemail.php?email='+email,
      type:'get',
      success:function(res){
        $(".result").html(res);
      }
    });
  }
</script>

checkemail.php

<?php

function checkValidEmail($email){
  $email_parts = explode('@',$email);
  if(isset($email_parts[1]) && $email_parts[1]){
    $domain = $email_parts[1];
    if (checkdnsrr($domain . '.','MX')) {
      return true;
    }
    else{
      return false;
    }
  }
}

$email = $_GET['email'];
if(checkValidEmail($email)){
  echo 'Email is Valid';
}else{
  echo 'Email is Invalid';
}
exit;

 

TagsEmail

Comments are closed.