commit | author | age
|
2207d6
|
1 |
# EmailValidator |
W |
2 |
[![Build Status](https://travis-ci.org/egulias/EmailValidator.svg?branch=master)](https://travis-ci.org/egulias/EmailValidator) [![Coverage Status](https://coveralls.io/repos/egulias/EmailValidator/badge.svg?branch=master)](https://coveralls.io/r/egulias/EmailValidator?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/egulias/EmailValidator/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/egulias/EmailValidator/?branch=master) [![SensioLabsInsight](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6/small.png)](https://insight.sensiolabs.com/projects/22ba6692-9c02-42e5-a65d-1c5696bfffc6) |
|
3 |
============================= |
|
4 |
## Suported RFCs ## |
|
5 |
This library aims to support: |
|
6 |
|
|
7 |
RFC 5321, 5322, 6530, 6531, 6532. |
|
8 |
|
|
9 |
## Requirements ## |
|
10 |
|
|
11 |
* [Composer](https://getcomposer.org) is required for installation |
|
12 |
* [Spoofchecking](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) and [DNSCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/DNSCheckValidation.php) validation requires that your PHP system has the [PHP Internationalization Libraries](https://php.net/manual/en/book.intl.php) (also known as PHP Intl) |
|
13 |
|
|
14 |
## Installation ## |
|
15 |
|
|
16 |
Run the command below to install via Composer |
|
17 |
|
|
18 |
```shell |
|
19 |
composer require egulias/email-validator |
|
20 |
``` |
|
21 |
|
|
22 |
## Getting Started ## |
|
23 |
`EmailValidator`requires you to decide which (or combination of them) validation/s strategy/ies you'd like to follow for each [validation](#available-validations). |
|
24 |
|
|
25 |
A basic example with the RFC validation |
|
26 |
```php |
|
27 |
<?php |
|
28 |
|
|
29 |
use Egulias\EmailValidator\EmailValidator; |
|
30 |
use Egulias\EmailValidator\Validation\RFCValidation; |
|
31 |
|
|
32 |
$validator = new EmailValidator(); |
|
33 |
$validator->isValid("example@example.com", new RFCValidation()); //true |
|
34 |
``` |
|
35 |
|
|
36 |
|
|
37 |
### Available validations ### |
|
38 |
|
|
39 |
1. [RFCValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/RFCValidation.php) |
|
40 |
2. [NoRFCWarningsValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/NoRFCWarningsValidation.php) |
|
41 |
3. [DNSCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/DNSCheckValidation.php) |
|
42 |
4. [SpoofCheckValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/SpoofCheckValidation.php) |
|
43 |
5. [MultipleValidationWithAnd](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/MultipleValidationWithAnd.php) |
|
44 |
6. [Your own validation](#how-to-extend) |
|
45 |
|
|
46 |
`MultipleValidationWithAnd` |
|
47 |
|
|
48 |
It is a validation that operates over other validations performing a logical and (&&) over the result of each validation. |
|
49 |
|
|
50 |
```php |
|
51 |
<?php |
|
52 |
|
|
53 |
use Egulias\EmailValidator\EmailValidator; |
|
54 |
use Egulias\EmailValidator\Validation\DNSCheckValidation; |
|
55 |
use Egulias\EmailValidator\Validation\MultipleValidationWithAnd; |
|
56 |
use Egulias\EmailValidator\Validation\RFCValidation; |
|
57 |
|
|
58 |
$validator = new EmailValidator(); |
|
59 |
$multipleValidations = new MultipleValidationWithAnd([ |
|
60 |
new RFCValidation(), |
|
61 |
new DNSCheckValidation() |
|
62 |
]); |
|
63 |
$validator->isValid("example@example.com", $multipleValidations); //true |
|
64 |
``` |
|
65 |
|
|
66 |
### How to extend ### |
|
67 |
|
|
68 |
It's easy! You just need to implement [EmailValidation](https://github.com/egulias/EmailValidator/blob/master/EmailValidator/Validation/EmailValidation.php) and you can use your own validation. |
|
69 |
|
|
70 |
|
|
71 |
## Other Contributors ## |
|
72 |
(You can find current contributors [here](https://github.com/egulias/EmailValidator/graphs/contributors)) |
|
73 |
|
|
74 |
As this is a port from another library and work, here are other people related to the previous one: |
|
75 |
|
|
76 |
* Ricard Clau [@ricardclau](https://github.com/ricardclau): Performance against PHP built-in filter_var |
|
77 |
* Josepf Bielawski [@stloyd](https://github.com/stloyd): For its first re-work of Dominic's lib |
|
78 |
* Dominic Sayers [@dominicsayers](https://github.com/dominicsayers): The original isemail function |
|
79 |
|
|
80 |
## License ## |
|
81 |
Released under the MIT License attached with this code. |
|
82 |
|