This is a fork of AddedBytes’ EmailAddressValidator class.


Changes include:

  • Composer support
  • Refactored the class to be purely static
  • Opened up methods for checking the “local part” (the bit before the @) and the “domain part” (after the @) to be public methods
  • Additional code style and docblock fixing to properly follow the PHP-FIG PSR-1 and PSR-2 documents

Note that this class is still un-namespaced - i.e. it’s still declared in the global namespace. The composer.json file is still set up to correctly load it when required, so this shouldn’t be a problem in practice - it’s just perhaps not best-practice.


Use Composer:

php composer.phar require aziraphale/email-address-validator:^2

If you don’t want to use Composer (why not?!), just download the EmailAddressValidator.php file, save it with your project, and require it where needed.

Note that this updated version is version 2.0.0. I have kept the original class tagged as version 1.0.10 (it was the 10th commit to the Google Code svn repository). If you want to use Composer to install the old class, simply specify ^1 as the version constraint (which will allow for backwards-compatible changes to be installed, if any get made, while never jumping to my modified class without your direct action):

php composer.phar require aziraphale/email-address-validator:^1


Due to the aforementioned changes, the way of using this class has completely changed. However it has such a small and simple interface that these changes shouldn’t be problematic.

As a recap, the old usage was like this:

$validator = new EmailAddressValidator;
if ($validator->check_email_address('')) {
    // Email address is technically valid

The new syntax is as follows (ensure you have already included Composer’s autoload.php file!):

if (EmailAddressValidator::checkEmailAddress("")) {
    // Email address is technically valid

with a couple of additional methods in case they’re helpful:

if (EmailAddressValidator::checkLocalPortion("test")) {
    // "test" is technically a valid string to have before the "@" in an email address
if (EmailAddressValidator::checkDomainPotion("")) {
    // "" is technically a valid email address host