How to validate an email address with PHP

Posted on

Validating an email address is a great way to reduce spam on your website, but there are several methods to do it. You could use a messy regex approach or alternatively you could also use PHP built in functions, it's really up to you. Here is the function I use:

function validEmail($email){
  // Check the formatting is correct
  if(filter_var($email, FILTER_VALIDATE_EMAIL) === false){
    return FALSE;

  // Next check the domain is real.
  $domain = explode("@", $email, 2);
  return checkdnsrr($domain[1]); // returns TRUE/FALSE;

// Example
validEmail(''); // Returns TRUE
validEmail(''); // Returns FALSE

This was written by Mike Rogers, a freelance Ruby on Rails developer based in London.

Share the ♥ by sharing this!

If you want to discuss this post, feel free to tweet me (@MikeRogers0) or drop me an email. Any code samples unless stated otherwise are licensed under the The MIT License (MIT). Spotted a mistake? Send me a pull request :)