PHPackages                             coodde/laravel-email-checker - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Mail &amp; Notifications](/categories/mail)
4. /
5. coodde/laravel-email-checker

ActiveLibrary[Mail &amp; Notifications](/categories/mail)

coodde/laravel-email-checker
============================

Validates email addresses belong to their domains

0.1.6(1y ago)241Apache-2.0PHPPHP &gt;8.0.0

Since Nov 26Pushed 1y ago1 watchersCompare

[ Source](https://github.com/coodde/Laravel-Email-Checker)[ Packagist](https://packagist.org/packages/coodde/laravel-email-checker)[ Fund](https://www.buymeacoffee.com/coodde)[ GitHub Sponsors](https://github.com/coodde)[ RSS](/packages/coodde-laravel-email-checker/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (6)Dependencies (8)Versions (8)Used By (0)

[![Contributors](https://camo.githubusercontent.com/aab04d4a857b3a67da9c24cd46f9e00083577676b2c1ad2510633680e5792757/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f636f6f6464652f4c61726176656c2d456d61696c2d436865636b65722e7376673f7374796c653d666f722d7468652d6261646765)](https://github.com/coodde/Laravel-Email-Checker/graphs/contributors)[![Forks](https://camo.githubusercontent.com/704ba20865f046a48c83a5d34dda94f29a65889271fd13dd844f1888ec0d66a3/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f636f6f6464652f4c61726176656c2d456d61696c2d436865636b65722e7376673f7374796c653d666f722d7468652d6261646765)](https://github.com/coodde/Laravel-Email-Checker/network/members)[![Stargazers](https://camo.githubusercontent.com/bc41ff1f54451a039a8f545fe921cd6a317f278717359626309cdbd9da5be277/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f636f6f6464652f4c61726176656c2d456d61696c2d436865636b65722e7376673f7374796c653d666f722d7468652d6261646765)](https://github.com/coodde/Laravel-Email-Checker/stargazers)[![Issues](https://camo.githubusercontent.com/409622eebfff99e0f348fb1c3de72eddc929d15e915361e335fcd1cd43d7b30a/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f636f6f6464652f4c61726176656c2d456d61696c2d436865636b65722e7376673f7374796c653d666f722d7468652d6261646765)](https://github.com/coodde/Laravel-Email-Checker/issues)[![Apache 2 License](https://camo.githubusercontent.com/30c72896574484217c5abb2aba402bd9d2415a36572a8e9b8a2e0433b1918c36/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f636f6f6464652f4c61726176656c2d456d61696c2d436865636b65722e7376673f7374796c653d666f722d7468652d6261646765)](https://github.com/coodde/Laravel-Email-Checker/blob/master/LICENSE)[![LinkedIn](https://camo.githubusercontent.com/d52963778220cbec61d6ed72270f9735024ffceeb551e5c3933d4e03b4694cf1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f2d4c696e6b6564496e2d626c61636b2e7376673f7374796c653d666f722d7468652d6261646765266c6f676f3d6c696e6b6564696e26636f6c6f72423d353535)](https://www.linkedin.com/groups/12553924/)

Laravel Email Checker
---------------------

[](#laravel-email-checker)

 Validates email addresses belong to their domain.

 [Report Bug](https://github.com/coodde/Laravel-Email-Checker/issues/new?labels=bug&template=bug-report---.md) · [Request Feature](https://github.com/coodde/Laravel-Email-Checker/issues/new?labels=enhancement&template=feature-request---.md)

 Table of Contents1. [About The Package](#about-the-project)
    - [Built With](#built-with)
2. [Getting Started](#getting-started)
    - [Requires](#requires)
    - [Installation](#installation)
3. [Usage](#usage)
4. [Roadmap](#roadmap)
5. [Contributing](#contributing)
6. [License](#license)
7. [Contact](#contact)

About The Project
-----------------

[](#about-the-project)

Flexible and simple library for checking email addresses. Usual framework validators are usually checking email correctness, but this library is implementing other kind of validation.

It can check is mail:

- registered in mail provider from forbidden country;
- registered in forbidden domain (all possible levels);
- used for spam or scam (dangerous), temporary, had suspicious behaviour, is registered on paid or public (like gmail) mail provider.

Of course, you can always propose new domains to add into listed in the "data" directory.

Key feautures:

- fast search - binary search in the pre-sorted dictionaries (in comparison with other popular libraries with linear search)
- flexible configurations - not only one strict list
- low memory usage - disctionaries are not loaded fully into memory (as in other popular libraries)
- frequent updates
- easy collaboration
- large disctionary- 60k+ of domains (not only public email providers) in the dictionary

([back to top](#readme-top))

### Built With

[](#built-with)

This library supports several languages and frameworks.

- PHP
    - [![Vanilla](https://camo.githubusercontent.com/497fa146f8b7c4576bde9d12deb4784ec739dfe25a93cf00021f3062d766861e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d4646324432303f7374796c653d666f722d7468652d6261646765266c6f676f3d504850266c6f676f436f6c6f723d7768697465)](https://github.com/coodde/PHP-Email-Checker)
    - Laravel (current)
    - Symfony (planned)
    - Phalcon (planned)
- JS / TS
    - Vanilla (planned)
    - [![Next](https://camo.githubusercontent.com/85efcc9ce0adc2da45d56e312cfa813eb4b375e46ed8f1e6cdfbd586f1b57fd0/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6e6578742e6a732d3030303030303f7374796c653d666f722d7468652d6261646765266c6f676f3d6e657874646f746a73266c6f676f436f6c6f723d7768697465)](https://nextjs.org/) (planned)
    - [![React](https://camo.githubusercontent.com/18f8a526265952d1a4ed04eff457c936721e64e5bf4e3f35cca938efe3f30de5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f52656163742d3230323332413f7374796c653d666f722d7468652d6261646765266c6f676f3d7265616374266c6f676f436f6c6f723d363144414642)](https://reactjs.org/) (planned)
    - [![Vue](https://camo.githubusercontent.com/de74feace6fd57d361ea8b0aa48c1a6d07300ce3ebbd455b89e7f126adabb5cd/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5675652e6a732d3335343935453f7374796c653d666f722d7468652d6261646765266c6f676f3d767565646f746a73266c6f676f436f6c6f723d344643303844)](https://vuejs.org/) (planned)
    - [![Angular](https://camo.githubusercontent.com/4c26d977719f5503b94b4a3ed4b0555752bb1c9f7c5aae95377cc4a7fd1758c1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f416e67756c61722d4444303033313f7374796c653d666f722d7468652d6261646765266c6f676f3d616e67756c6172266c6f676f436f6c6f723d7768697465)](https://angular.io/) (planned)
    - [![Svelte](https://camo.githubusercontent.com/496a127c31ecbb12ecf060f96dc0b05f004f7143f86a393d3587fc3e4e69874e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5376656c74652d3441344135353f7374796c653d666f722d7468652d6261646765266c6f676f3d7376656c7465266c6f676f436f6c6f723d464633453030)](https://svelte.dev/) (planned)
- Ruby
    - Ruby on Rails (planned)
- Perl
    - Vanilla (planned)

([back to top](#readme-top))

Getting Started
---------------

[](#getting-started)

Simple steps to start use the library.

### Requires

[](#requires)

Check that library works on your PHP version:

- PHP 8.0+
- Composer

### Installation

[](#installation)

*Below is an simple list of step to install library.*

1. Open your project directory in the terminal
2. Install package

```
composer require coodde/laravel-mail-checker
```

3. Check your `composer.json` file
4. Check your app.php, that ServiceProvider is installed
5. Check your `config` directory, that config file `mail-checker.php` is created

([back to top](#readme-top))

Usage
-----

[](#usage)

This table will help to understand possible usage of library and all default values:

ParamsValidator classesValidator namesDefault ValuePossible ValuesDescriptioncategories`Coodde\LaravelMailChecker\Rules\MailListedValidation`
`Coodde\LaravelMailChecker\Rules\MailValidation``mail_check_listed`, `mail_check`\[Regions::CATEGORY\_DANGEROUS\]MailListedValidator::CATEGORY\_PUBLIC
MailListedValidator::CATEGORY\_PAID
MailListedValidator::CATEGORY\_TEMPORARY
MailListedValidator::CATEGORY\_SUSPICIOUS
MailListedValidator::CATEGORY\_DANGEROUSFor more comfortable usage all mail providers are split into several listsdomains`Coodde\LaravelMailChecker\Rules\MailDomainsValidation`
`Coodde\LaravelMailChecker\Rules\MailValidation``mail_check_domains`, `mail_check`\[\]\*Any kind of domains, starting by top level domains like "com" or "net", and finishing by exact domains like "mail.ru"regions`Coodde\LaravelMailChecker\Rules\MailRegionsValidation`
`Coodde\LaravelMailChecker\Rules\MailValidation``mail_check_regions`, `mail_check`\[ Regions::RUSSIA, Regions::BELARUS, Regions::NORTH\_KOREA, Regions::AFGHANISTAN, Regions::IRAN, Regions::SYRIA, Regions::SOVIET\_UNION, Regions::CUBA \]All Available Regions1. Regions::ASCENSION\_ISLAND
2. Regions::ANDORRA
3. Regions::UNITED\_ARAB\_EMIRATES
4. Regions::UAE
5. Regions::AFGHANISTAN
6. Regions::ANTIGUA\_AND\_BARBUDA
7. Regions::ANGUILLA
8. Regions::ALBANIA
9. Regions::ARMENIA
10. Regions::ANGOLA
11. Regions::ANTARCTICA
12. Regions::ARGENTINA
13. Regions::AMERICAN\_SAMOA
14. Regions::AUSTRIA
15. Regions::AUSTRALIA
16. Regions::ARUBA
17. Regions::ALAND
18. Regions::AZERBAIJAN
19. Regions::BOSNIA\_AND\_HERZEGOVINA
20. Regions::BARBADOS
21. Regions::BANGLADESH
22. Regions::BELGIUM
23. Regions::BURKINA\_FASO
24. Regions::BULGARIA
25. Regions::BAHRAIN
26. Regions::BURUNDI
27. Regions::BENIN
28. Regions::BERMUDA
29. Regions::BRUNEI
30. Regions::BOLIVIA
31. Regions::CARIBBEAN\_NETHERLANDS
32. Regions::BRAZIL
33. Regions::BAHAMAS
34. Regions::BHUTAN
35. Regions::BOTSWANA
36. Regions::BELARUS
37. Regions::BELIZE
38. Regions::CANADA
39. Regions::COCOS\_ISLANDS
40. Regions::DEMOCRATIC\_REPUBLIC\_OF\_THE\_CONGO
41. Regions::CENTRAL\_AFRICAN\_REPUBLIC
42. Regions::REPUBLIC\_OF\_THE\_CONGO
43. Regions::SWITZERLAND
44. Regions::IVORY\_COAST
45. Regions::COOK\_ISLANDS
46. Regions::CHILE
47. Regions::CAMEROON
48. Regions::CHINA
49. Regions::COLOMBIA
50. Regions::COSTA\_RICA
51. Regions::CUBA
52. Regions::CAPE\_VERDE
53. Regions::CURACAO
54. Regions::CHRISTMAS\_ISLAND
55. Regions::CYPRUS
56. Regions::CZECH\_REPUBLIC
57. Regions::GERMANY
58. Regions::DJIBOUTI
59. Regions::DENMARK
60. Regions::DOMINICA
61. Regions::DOMINICAN\_REPUBLIC
62. Regions::ALGERIA
63. Regions::ECUADOR
64. Regions::ESTONIA
65. Regions::EGYPT
66. Regions::WESTERN\_SAHARA
67. Regions::ERITREA
68. Regions::SPAIN
69. Regions::ETHIOPIA
70. Regions::EUROPEAN\_UNION
71. Regions::FINLAND
72. Regions::FIJI
73. Regions::FALKLAND\_ISLANDS
74. Regions::FEDERATED\_STATES\_OF\_MICRONESIA
75. Regions::FAROE\_ISLANDS
76. Regions::FRANCE
77. Regions::GABON
78. Regions::GRENADA
79. Regions::GEORGIA
80. Regions::FRENCH\_GUIANA
81. Regions::GUERNSEY
82. Regions::GHANA
83. Regions::GIBRALTAR
84. Regions::GREENLAND
85. Regions::THE\_GAMBIA
86. Regions::GUINEA
87. Regions::GUADELOUPE
88. Regions::EQUATORIAL\_GUINEA
89. Regions::GREECE
90. Regions::SOUTH\_GEORGIA\_AND\_THE\_SOUTH\_SANDWICH\_ISLANDS
91. Regions::GUATEMALA
92. Regions::GUAM
93. Regions::GUINEA\_BISSAU
94. Regions::GUYANA
95. Regions::HONG\_KONG
96. Regions::HEARD\_ISLAND\_AND\_MCDONALD\_ISLANDS
97. Regions::HONDURAS
98. Regions::CROATIA
99. Regions::HAITI
100. Regions::HUNGARY
101. Regions::INDONESIA
102. Regions::IRELAND
103. Regions::ISRAEL
104. Regions::ISLE\_OF\_MAN
105. Regions::INDIA
106. Regions::BRITISH\_INDIAN\_OCEAN\_TERRITORY
107. Regions::IRAQ
108. Regions::IRAN
109. Regions::ICELAND
110. Regions::ITALY
111. Regions::JERSEY
112. Regions::JAMAICA
113. Regions::JORDAN
114. Regions::JAPAN
115. Regions::KENYA
116. Regions::KYRGYZSTAN
117. Regions::CAMBODIA
118. Regions::KIRIBATI
119. Regions::COMOROS
120. Regions::SAINT\_KITTS\_AND\_NEVIS
121. Regions::NORTH\_KOREA
122. Regions::SOUTH\_KOREA
123. Regions::KUWAIT
124. Regions::CAYMAN\_ISLANDS
125. Regions::KAZAKHSTAN
126. Regions::LAOS
127. Regions::LEBANON
128. Regions::SAINT\_LUCIA
129. Regions::LIECHTENSTEIN
130. Regions::SRI\_LANKA
131. Regions::LIBERIA
132. Regions::LESOTHO
133. Regions::LITHUANIA
134. Regions::LUXEMBOURG
135. Regions::LATVIA
136. Regions::LIBYA
137. Regions::MOROCCO
138. Regions::MONACO
139. Regions::MOLDOVA
140. Regions::MONTENEGRO
141. Regions::MADAGASCAR
142. Regions::MARSHALL\_ISLANDS
143. Regions::NORTH\_MACEDONIA
144. Regions::MALI
145. Regions::MYANMAR
146. Regions::MONGOLIA
147. Regions::MACAU
148. Regions::NORTHERN\_MARIANA\_ISLANDS
149. Regions::MARTINIQUE
150. Regions::MAURITANIA
151. Regions::MONTSERRAT
152. Regions::MALTA
153. Regions::MAURITIUS
154. Regions::MALDIVES
155. Regions::MALAWI
156. Regions::MEXICO
157. Regions::MALAYSIA
158. Regions::MOZAMBIQUE
159. Regions::NAMIBIA
160. Regions::NEW\_CALEDONIA
161. Regions::NIGER
162. Regions::NORFOLK\_ISLAND
163. Regions::NIGERIA
164. Regions::NICARAGUA
165. Regions::NETHERLANDS
166. Regions::NORWAY
167. Regions::NEPAL
168. Regions::NAURU
169. Regions::NIUE
170. Regions::NEW\_ZEALAND
171. Regions::OMAN
172. Regions::PANAMA
173. Regions::PERU
174. Regions::FRENCH\_POLYNESIA
175. Regions::PAPUA\_NEW\_GUINEA
176. Regions::PHILIPPINES
177. Regions::PAKISTAN
178. Regions::POLAND
179. Regions::SAINT\_PIERRE\_AND\_MIQUELON
180. Regions::PITCAIRN\_ISLANDS
181. Regions::PUERTO\_RICO
182. Regions::PALESTINE
183. Regions::PORTUGAL
184. Regions::PALAU
185. Regions::PARAGUAY
186. Regions::QATAR
187. Regions::RÉUNION
188. Regions::ROMANIA
189. Regions::SERBIA
190. Regions::RUSSIA
191. Regions::RWANDA
192. Regions::SAUDI\_ARABIA
193. Regions::SOLOMON\_ISLANDS
194. Regions::SEYCHELLES
195. Regions::SUDAN
196. Regions::SWEDEN
197. Regions::SINGAPORE
198. Regions::SAINT\_HELENA\_ASCENSION\_AND\_TRISTAN\_DA\_CUNHA
199. Regions::SAINT\_HELENA
200. Regions::SLOVENIA
201. Regions::SLOVAKIA
202. Regions::SIERRA\_LEONE
203. Regions::SAN\_MARINO
204. Regions::SENEGAL
205. Regions::SOMALIA
206. Regions::SURINAME
207. Regions::SOUTH\_SUDAN
208. Regions::SAO\_TOME\_AND\_PRINCIPE
209. Regions::SOVIET\_UNION
210. Regions::EL\_SALVADOR
211. Regions::SINT\_MAARTEN
212. Regions::SYRIA
213. Regions::ESWATINI
214. Regions::TURKS\_AND\_CAICOS\_ISLANDS
215. Regions::CHAD
216. Regions::FRENCH\_SOUTHERN\_AND\_ANTARCTIC\_LANDS
217. Regions::TOGO
218. Regions::THAILAND
219. Regions::TAJIKISTAN
220. Regions::TOKELAU
221. Regions::EAST\_TIMOR
222. Regions::TURKMENISTAN
223. Regions::TUNISIA
224. Regions::TONGA
225. Regions::TURKEY
226. Regions::TRINIDAD\_AND\_TOBAGO
227. Regions::TUVALU
228. Regions::TAIWAN
229. Regions::TANZANIA
230. Regions::UKRAINE
231. Regions::UGANDA
232. Regions::UNITED\_KINGDOM
233. Regions::UNITED\_STATES\_OF\_AMERICA
234. Regions::USA
235. Regions::URUGUAY
236. Regions::UZBEKISTAN
237. Regions::VATICAN\_CITY
238. Regions::SAINT\_VINCENT\_AND\_THE\_GRENADINES
239. Regions::VENEZUELA
240. Regions::BRITISH\_VIRGIN\_ISLANDS
241. Regions::UNITED\_STATES\_VIRGIN\_ISLANDS
242. Regions::VIETNAM
243. Regions::VANUATU
244. Regions::WALLIS\_AND\_FUTUNA
245. Regions::SAMOA
246. Regions::YEMEN
247. Regions::MAYOTTE
248. Regions::SOUTH\_AFRICA
249. Regions::ZAMBIA
250. Regions::ZIMBABWE

Recommended to use constants for easier code maintenanceHere you will find different cases of usage.

Checking that mail address registered in Russian mail provider:

```
use Coodde\LaravelMailChecker\Rules\MailRegionsValidation;
use Coodde\LaravelMailChecker\Regions;

public function store(Request $request): RedirectResponse
{
    $validated = $request->validate([
        'email' => ['required', new MailRegionsValidation([Regions::RUSSIA])],
    ]);

    // OR with configs from env, ex. (country code) - MAIL_CHECKER_REGIONS=ru

    $validated = $request->validate([
        'email' => ['required', new MailRegionsValidation()],
    ]);

    // Request is valid...

    return redirect('/list');
}
```

Checking that mail address registered in "ru" or "mail.by" domains:

```
use Coodde\LaravelMailChecker\Rules\MailDomainsValidation;
use Coodde\LaravelMailChecker\Regions;

public function store(Request $request): RedirectResponse
{
    $validated = $request->validate([
        'email' => ['required', new MailDomainsValidation(['ru', 'mail.by'])],
    ]);

    // OR with configs from env, ex. - MAIL_CHECKER_DOMAINS=ru,mail.by

    $validated = $request->validate([
        'email' => ['required', new MailDomainsValidation()],
    ]);

    // Request is valid...

    return redirect('/list');
}
```

Checking that mail address is placed in dangerous or suspicious lists:

```
use Coodde\LaravelMailChecker\Rules\MailListedValidation;
use Coodde\LaravelMailChecker\Regions;

public function store(Request $request): RedirectResponse
{
    $validated = $request->validate([
        'email' => ['required', new MailListedValidation([MailListedValidation::CATEGORY_DANGEROUS, MailListedValidation::CATEGORY_SUSPICIOUS])],
    ]);

    // OR with configs from env, ex. - MAIL_CHECKER_CATEGORIES=dangerous,suspicious

    $validated = $request->validate([
        'email' => ['required', new MailListedValidation()],
    ]);

    // Request is valid...

    return redirect('/list');
}
```

Complex validation to allow only corporate emails, :

```
use Coodde\LaravelMailChecker\Rules\MailValidation;
use Coodde\LaravelMailChecker\Regions;

public function store(Request $request): RedirectResponse
{
    $validated = $request->validate([
        'email' => [
        	'required',
        	new MailValidation(
        		[
        			MailListedValidation::CATEGORY_DANGEROUS,
        			MailListedValidation::CATEGORY_SUSPICIOUS,
        			MailListedValidation::CATEGORY_TEMPORARY,
        			MailListedValidation::CATEGORY_PAID,
        			MailListedValidation::CATEGORY_PUBLIC,
        		],
        		[
        			'fb.com',
        		],
        		[
        			Regions::RUSSIA,
        			Regions::BELARUS,
        		],
        	),
       	],
    ]);

    // OR with separate validators

    $validated = $request->validate([
        'email' => [
        	'required',
        	new MailListedValidation([
    			MailListedValidation::CATEGORY_DANGEROUS,
    			MailListedValidation::CATEGORY_SUSPICIOUS,
    			MailListedValidation::CATEGORY_TEMPORARY,
    			MailListedValidation::CATEGORY_PAID,
    			MailListedValidation::CATEGORY_PUBLIC,
        	]),
        	new MailDomainsValidation([
    			'fb.com',
    		]),
        	new MailRegionsValidation([
    			Regions::RUSSIA,
    			Regions::BELARUS,
    		]),
       	],
    ]);

    // Request is valid...

    return redirect('/list');
}
```

*Of course you can combine restrictioned domains, countries, and categories*

([back to top](#readme-top))

Roadmap
-------

[](#roadmap)

- Checking by countries
- Checking by domains
- Prepared lists
    - Dangerous - usually scaming servers / domains
    - Suspicios - usually spaming servers / domains
    - Paid - mail providers with non-free subscription
    - Temporary - services for mails which will be removed soon after creation
    - Public - popular free services like gmail, outlook, etc
- Checking by prepaired lists
    - From files - it uses binary search without file content buffering
    - From cache - cache files with lists compiled into php file
    - From memory - storing lists in memcache
    - From database - by using PDO library+

See the [open issues](https://github.com/coodde/Laravel-Email-Checker/issues) for a full list of proposed features (and known issues).

([back to top](#readme-top))

Contributing
------------

[](#contributing)

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

✅ Run refactors using **Rector**

```
composer refacto
```

⚗️ Run static analysis using **PHPStan**:

```
composer test:types
```

✅ Run unit tests using **PEST**

```
composer test:unit
```

🚀 Run the entire test suite:

```
composer test
```

### Top contributors:

[](#top-contributors)

[ ![contrib.rocks image](https://camo.githubusercontent.com/17a94040783fa6a5f79180b3c1346e36250e36f322986388ed79235aa7ad8a1f/68747470733a2f2f636f6e747269622e726f636b732f696d6167653f7265706f3d636f6f6464652f4c61726176656c2d456d61696c2d436865636b6572)](https://github.com/coodde/Laravel-Email-Checker/graphs/contributors)([back to top](#readme-top))

License
-------

[](#license)

Distributed under the Apache 2.0 License. See `LICENSE` for more information.

([back to top](#readme-top))

Contact
-------

[](#contact)

Svyatoslav Ryzhok -

Platform Link:

([back to top](#readme-top))

###  Health Score

25

—

LowBetter than 37% of packages

Maintenance40

Moderate activity, may be stable

Popularity7

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity38

Early-stage or recently created project

 Bus Factor1

Top contributor holds 53.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~5 days

Total

7

Last Release

502d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/464efd2d107c09841c0c838df8c6f950fab528bcc847d16ae5611de34d2c0c50?d=identicon)[coodde](/maintainers/coodde)

---

Top Contributors

[![coodde](https://avatars.githubusercontent.com/u/143871155?v=4)](https://github.com/coodde "coodde (8 commits)")[![svyat-r](https://avatars.githubusercontent.com/u/44367867?v=4)](https://github.com/svyat-r "svyat-r (7 commits)")

---

Tags

checkeremailemail-validationlaravellaravel-validationvalidatorlaravelvalidatorvalidationemailemail checkeremail domain

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/coodde-laravel-email-checker/health.svg)

```
[![Health](https://phpackages.com/badges/coodde-laravel-email-checker/health.svg)](https://phpackages.com/packages/coodde-laravel-email-checker)
```

###  Alternatives

[propaganistas/laravel-disposable-email

Disposable email validator

5762.6M6](/packages/propaganistas-laravel-disposable-email)[proengsoft/laravel-jsvalidation

Validate forms transparently with Javascript reusing your Laravel Validation Rules, Messages, and FormRequest

1.1k2.3M49](/packages/proengsoft-laravel-jsvalidation)[erag/laravel-disposable-email

A Laravel package to detect and block disposable email addresses.

226102.4k](/packages/erag-laravel-disposable-email)[laravel-validation-rules/credit-card

Validate credit card number, expiration date, cvc

2412.2M5](/packages/laravel-validation-rules-credit-card)[martian/spammailchecker

A laravel package that protect users from entering non-existing/spam email addresses.

422.0k](/packages/martian-spammailchecker)[ashallendesign/laravel-mailboxlayer

A lightweight Laravel package for validating emails using the Mailbox Layer API.

762.0k](/packages/ashallendesign-laravel-mailboxlayer)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
