EmailValidator
Suported RFCs
This library aims to support:
RFC 5321, 5322, 6530, 6531, 6532.
Requirements
- Composer is required for installation
- Spoofchecking and DNSCheckValidation validation requires that your PHP system has the PHP Internationalization Libraries (also known as PHP Intl)
Installation
Run the command below to install via Composer
composer require egulias/email-validator
Getting Started
EmailValidator
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
use Egulias\EmailValidator\EmailValidator;
use Egulias\EmailValidator\Validation\RFCValidation;
$validator = new EmailValidator();
$validator->isValid("example@example.com", new RFCValidation()); //true
Available validations
- RFCValidation
- NoRFCWarningsValidation
- DNSCheckValidation
- SpoofCheckValidation
- MultipleValidationWithAnd
- 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 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
License
Released under the MIT License attached with this code.