Check if an Email is valid and exists using MX Record using PHP
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;