egulias/EmailValidator
egulias/EmailValidator has 11,638 GitHub stars and 233 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-07 10:14 UTC. Last push 2026-11-02.
PHP Email address validator
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalEmailValidator
A library for validating emails against several RFC.
Supported RFCs
This library aims to support RFCs:
Supported versions
| Version | Released | EOL | Only critical bug fixes | Full |
|---|---|---|---|---|
| v4.x | 2023/01/07 | - | X | X |
| v3.x | 2020/12/29 | YES | ||
| v2.1.x | 2016/05/16 | YES | ||
| v1.2 | 2013/19/05 | YES |
Requirements
- PHP 8.1
- Composer is required for installation
- Spoofchecking and DNSCheckValidation validation requires that your PHP system has the PHP Internationalization Libraries (also known as PHP Intl)
Note: PHP version upgrades will happen to accomodate to the pace of major frameworks. Minor versions bumps will go via minor versions of this library (i.e: PHP7.3 -> v3.x+1). Major versions will go with major versions of the library
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("[email protected]", new RFCValidation()); //true
Available validations
- RFCValidation: Standard RFC-like email validation.
- NoRFCWarningsValidation: RFC-like validation that will fail when warnings* are found.
- DNSCheckValidation: Will check if there are DNS records that signal that the server accepts emails. This does not entail that the email exists.
- MultipleValidationWithAnd: It is a validation that operates over other validations performing a logical and (&&) over the result of each validation.
- MessageIDValidation: Follows RFC2822 for message-id to validate that field, that has some differences in the domain part.
- 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 accepted.
<?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()
]);
//ietf.org has MX records signaling a server with email capabilities
$validator->isValid("[email protected]", $multipleValidations); //true
Additional validations
Validations not present in the RFCs
- SpoofCheckValidation: Will check for multi-utf-8 chars that can signal an erroneous email name.
How to extend
It's easy! You just need to implement EmailValidation and you can use your own validation.
Contributing
Please follow the Contribution guide. Is short and simple and will help a lot.
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 (v2 and earlier)
- Josepf Bielawski @stloyd: For its first re-work of Dominic's lib
- Dominic Sayers @dominicsayers:
The original
isemailfunction
License
Released under the MIT License attached with this code.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
560,836 starspublic-apis/public-apis
A collective list of free APIs
497,076 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
441,480 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,157 stars