Need help with EmailValidator?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

9.6K Stars 130 Forks MIT License 237 Commits 24 Opened issues


PHP Email address validator library inspired in @dominicsayers isemail function

Services available


Need anything else?

Contributors list


Build Status Coverage Status Scrutinizer Code Quality SensioLabsInsight

Supported RFCs

This library aims to support:

RFC 5321, 5322, 6530, 6531, 6532.



Run the command below to install via Composer

composer require egulias/email-validator

Getting Started

requires you to decide which (or combination of them) validation/s strategy/ies you'd like to follow for each validation.

A basic example with the RFC validation ```php <?php

use Egulias\EmailValidator\EmailValidator; use Egulias\EmailValidator\Validation\RFCValidation;

$validator = new EmailValidator(); $validator->isValid("[email protected]", new RFCValidation()); //true ```

Available validations

  1. RFCValidation: Standard RFC-like email validation.
  2. NoRFCWarningsValidation: RFC-like validation that will fail when warnings* are found.
  3. DNSCheckValidation: Will check if there are DNS records that signal that the server accepts emails. This does not entails that the email exists.
  4. SpoofCheckValidation: Will check for multi-utf-8 chars that can signal an erroneous email name.
  5. MultipleValidationWithAnd: It is a validation that operates over other validations performing a logical and (&&) over the result of each validation.
  6. Your own validation: You can extend the library behaviour by implementing your own validations.

*warnings: Warnings are deviations from the RFC that in a broader interpretation are acceptded.

$validator = new EmailValidator();
$multipleValidations = new MultipleValidationWithAnd([
    new RFCValidation(),
    new DNSCheckValidation()
// has MX records signaling a server with email capabilites
$validator->isValid("[email protected]", $multipleValidations); //true

How to extend

It's easy! You just need to implement EmailValidation and you can use your own validation.

Other Contributors

(You can find current contributors here)

As this is a port from another library and work, here are other people related to the previous one:

  • Ricard Clau @ricardclau: Performance against PHP built-in filter_var
  • Josepf Bielawski @stloyd: For its first re-work of Dominic's lib
  • Dominic Sayers @dominicsayers: The original isemail function


Released under the MIT License attached with this code.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.