egulias/email-validator

A library for validating emails against several RFCs


README

Build Status Coverage Status Scrutinizer Code Quality SensioLabsInsight

With the help of

Powered by PhpStorm

Installation

Run the command below to install via Composer

composer require egulias/email-validator "~2.0"

Getting Started

EmailValidatorrequires 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

use Egulias\EmailValidator\EmailValidator;

$validator = new EmailValidator();
$validator->isValid("example@example.com", new RFCValidation()) //true

Available validations

  1. RFCValidation
  2. NoWarningsRFCValidation
  3. DNSCheckValidation
  4. SpoofCheckValidation
  5. MultipleValidationWithAnd
  6. Your own validation

MultipleValidationWithAnd

It is a validation that operates over other validations performing a logical and (&&) over the result of each validation.

<?php

use Egulias\EmailValidator\EmailValidator;
use Egulias\EmailValidator\Validation\DNSCheckValidation;
use Egulias\EmailValidator\Validation\MultipleValidationWithAnd;
use Egulias\EmailValidator\Validation\RFCValidation;

$validator = new EmailValidator();
$multipleValidations = new MultipleValidationWithAnd([
    new RFCValidation(),
    new DNSCheckValidation()
])
$validator->isValid("example@example.com", $multipleValidations) //true

How to extend

It's easy! You just need to extend 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

License

Released under the MIT License attached with this code.