Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nojacko/email-validator

Small PHP library to valid email addresses using a number of methods.
https://github.com/nojacko/email-validator

Last synced: about 1 month ago
JSON representation

Small PHP library to valid email addresses using a number of methods.

Awesome Lists containing this project

README

        

# Email Validator
Small PHP library to valid email addresses using a number of methods.

[![License](https://img.shields.io/github/license/nojacko/email-validator.svg)](https://github.com/nojacko/email-validator/blob/master/LICENSE)
[![Build Status](https://img.shields.io/travis/nojacko/email-validator.svg)](https://travis-ci.org/nojacko/email-validator)
[![Code Quality](https://img.shields.io/codacy/7b3a2c246622431abd1fc4e2750aae1b.svg)](https://www.codacy.com/app/nojacko/email-validator)
[![Downloads](https://img.shields.io/packagist/dm/nojacko/email-validator.svg)](https://packagist.org/packages/nojacko/email-validator)
[![Github Stars](https://img.shields.io/github/stars/nojacko/email-validator.svg)](https://github.com/nojacko/email-validator/stargazers)

## 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.

* ```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:

* 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('[email protected]'); // true
$validator->isValid('[email protected]'); // false
$validator->isValid('[email protected]'); // false

$validator->isSendable('[email protected]'); // true
$validator->isSendable('[email protected]'); // true
$validator->isSendable('[email protected]'); // false

$validator->isEmail('[email protected]'); // true
$validator->isEmail('example@example'); // false

$validator->isExample('[email protected]'); // true
$validator->isExample('[email protected]'); // false
$validator->isExample('example.com'); // null

$validator->isDisposable('[email protected]'); // false
$validator->isDisposable('[email protected]'); // true
$validator->isDisposable('example.com'); // null

$validator->isRole('[email protected]'); // false
$validator->isRole('[email protected]'); // true
$validator->isRole('example.com'); // null

$validator->hasMx('[email protected]'); // false
$validator->hasMx('[email protected]'); // true
$validator->hasMx('example.com'); // null
```

## Contribute
Contributions welcome!

### Requirements
* [Test-driven development](http://en.wikipedia.org/wiki/Test-driven_development)
* Follow [PSR-2 Coding Style Guide](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)
* One change per pull request

### Add/Remove Disposable Domain
See the [email-data-disposable](https://github.com/nojacko/email-data-disposable) project.

### 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.

### Other Contributions
For anything that isn't a new feature (bug fix, tests, etc) just create a pull request.

## Testing
Test are all located in ```tests``` folder.

Run tests with phpunit. In root folder, execute ```phpunit``` in a CLI.

## Versioning
[Semantic Versioning 2.0.0](http://semver.org/spec/v2.0.0.html)

## License
The MIT License (MIT). See LICENCE file.