mirror of
https://github.com/egulias/EmailValidator.git
synced 2026-08-21 16:53:36 +00:00
2.1.19
* Reimplement DNSCheckValidation to utilise get_dns_record and extend support for detection of Null MX records (RFC7505) and reserved, mDNS and private namespaces (RFC2606 & RFC6762) * Change valid email tests to use github.com instead of example.com as example.com now (correctly) fails the tests due to the Null MX case * Tweak to pass CI psalm issue * Encapsulate dns check code. Simplify local and reserved domain checks. Switch test domain * Set PHPDoc return type * Use strict comparisons
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
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;
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.
Languages
PHP
100%

