Email Validator
Small PHP library to valid email addresses using a number of methods., (*1)
, (*2)
Features
- Validates email address
- Checks for example domains (e.g. example.com)
- Checks for disposable email domains (e.g. mailinator.com)
- Checks for role-based addresses (e.g. abuse@)
- Checks for MX records (i.e. can receive email)
Install (using Composer)
composer require nojacko/email-validator:~1.0
Usage
Generalised Functions
-
isValid($email) Runs all the tests within this library. Returns true or false.
-
isSendable($email) Checks isEmail, isExample and hasMx. Returns true or false.
Specific Functions
If you want more control, use these functions seperately., (*3)
-
isEmail($email) Note: returns true or false only.
isExample($email)
isDisposable($email)
isRole($email)
hasMx($email)
These functions take a single argument (an email address) and return:, (*4)
- true, when function name is satisfied.
- false, when function name is not satisfied.
- null, when check is not possible, i.e. an invalid email is given.
Examples
$validator = new \EmailValidator\Validator();
$validator->isValid('example@google.com'); // true
$validator->isValid('abuse@google.com'); // false
$validator->isValid('example@example.com'); // false
$validator->isSendable('example@google.com'); // true
$validator->isSendable('abuse@google.com'); // true
$validator->isSendable('example@example.com'); // false
$validator->isEmail('example@example.com'); // true
$validator->isEmail('example@example'); // false
$validator->isExample('example@example.com'); // true
$validator->isExample('example@google.com'); // false
$validator->isExample('example.com'); // null
$validator->isDisposable('example@example.com'); // false
$validator->isDisposable('example@mailinater.com'); // true
$validator->isDisposable('example.com'); // null
$validator->isRole('example@example.com'); // false
$validator->isRole('abuse@example.com'); // true
$validator->isRole('example.com'); // null
$validator->hasMx('example@example.com'); // false
$validator->hasMx('example@google.com'); // true
$validator->hasMx('example.com'); // null
Contribute
Contributions welcome!, (*5)
Requirements
Add/Remove Disposable Domain
See the email-data-disposable project., (*6)
New Feature
If you're planning a new feature, please raise an issue first to ensure it's in scope. The aim is to keep this library small and with one specific purpose., (*7)
Other Contributions
For anything that isn't a new feature (bug fix, tests, etc) just create a pull request., (*8)
Testing
Test are all located in tests folder., (*9)
Run tests with phpunit. In root folder, execute phpunit in a CLI., (*10)
Versioning
Semantic Versioning 2.0.0, (*11)
License
The MIT License (MIT). See LICENCE file., (*12)