PHPackages                             unctom/laravel-email-shield - 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. unctom/laravel-email-shield

ActiveLibrary

unctom/laravel-email-shield
===========================

Extensible email validation and bulk list cleansing for your php project.

v0.1.0(1mo ago)11MITPHPPHP ^8.4CI passing

Since Jul 12Pushed 1mo agoCompare

[ Source](https://github.com/unctom/laravel-email-shield)[ Packagist](https://packagist.org/packages/unctom/laravel-email-shield)[ Docs](https://github.com/unctom/laravel-email-shield)[ GitHub Sponsors](https://github.com/unctom)[ RSS](/packages/unctom-laravel-email-shield/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (13)Versions (2)Used By (0)

Laravel Email Shield
====================

[](#laravel-email-shield)

[![Latest Version on Packagist](https://camo.githubusercontent.com/e12d40728553b91a7bbe023d52a77e05a33b6da243d70f62b06cad473aa13ea2/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f756e63746f6d2f6c61726176656c2d656d61696c2d736869656c642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/unctom/laravel-email-shield)[![GitHub Tests Action Status](https://camo.githubusercontent.com/6be3566632cbb5d4710f68ca3951553884cf353f78d8ae0c26341f75fa230435/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f756e63746f6d2f6c61726176656c2d656d61696c2d736869656c642f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/unctom/laravel-email-shield/actions?query=workflow%3Arun-tests+branch%3Amain)[![Total Downloads](https://camo.githubusercontent.com/d7eb8f4e56b1dab72fb884f0caa3d2898e57b897e78f8f465bcabb9b14275891/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f756e63746f6d2f6c61726176656c2d656d61696c2d736869656c642e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/unctom/laravel-email-shield)

Laravel Email Shield is a highly extensible, framework-native email authenticity and validation engine for Laravel.

It protects your application from junk sign-ups, disposable/throwaway addresses, role-based accounts, and dead domains by executing a high-performance validation pipeline that fails fast on simple syntax checks before ever executing slow network DNS lookups. Furthermore, it intelligently caches DNS checks to prevent throttling and rate limits during high traffic.

Installation
------------

[](#installation)

You can install the package via composer:

```
composer require unctom/laravel-email-shield
```

Usage
-----

[](#usage)

### Using the Validation Rule

[](#using-the-validation-rule)

The most common way to use Laravel Email Shield is via the provided `EmailAuthentic` validation rule during form requests.

```
use Illuminate\Support\Facades\Route;
use Illuminate\Http\Request;
use Unctom\EmailShield\Rules\EmailAuthentic;

Route::post('/register', function (Request $request) {
    $request->validate([
        'email' => [
            'required',
            'string',
            'email',
            (new EmailAuthentic())
                ->notDisposable()     // Blocks mailinator, tempmail, etc.
                ->preventRoleBased()  // Blocks admin@, support@, info@, etc.
                ->requireMx(),        // Ensures the domain has valid MX or A records
        ],
    ]);

    // ...
});
```

### Using the Facade

[](#using-the-facade)

If you need to validate an email address outside of Laravel's validation system, you can use the `EmailShield` facade directly:

```
use Unctom\EmailShield\Facades\EmailShield;

$result = EmailShield::validate('developer@example.com', [
    'check_disposable' => true,
    'prevent_role_based' => true,
    'require_mx' => true,
]);

if (! $result->isValid()) {
    echo "Validation failed: " . $result->getErrorMessage();
    echo "Failed at step: " . $result->getFailedRule();
}
```

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

Please see [CHANGELOG](CHANGELOG.md) for more information on what has changed recently.

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

[](#contributing)

Please see [CONTRIBUTING](CONTRIBUTING.md) for details.

Security Vulnerabilities
------------------------

[](#security-vulnerabilities)

Please review [our security policy](../../security/policy) on how to report security vulnerabilities.

Credits
-------

[](#credits)

- [Thomas B.](https://github.com/unctom)
- [All Contributors](../../contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance90

Actively maintained with recent releases

Popularity3

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity41

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

49d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ee8e90ee044e1136b3414a4fe1cd5f9d353e251d3f526f0560ca2e4ebfc31fc7?d=identicon)[unctom](/maintainers/unctom)

---

Top Contributors

[![unctom](https://avatars.githubusercontent.com/u/170850954?v=4)](https://github.com/unctom "unctom (3 commits)")

---

Tags

laravelunctomlaravel-email-shield

###  Code Quality

TestsPest

Static AnalysisPHPStan

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/unctom-laravel-email-shield/health.svg)

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

###  Alternatives

[dedoc/scramble

Automatic generation of API documentation for Laravel applications.

2.2k14.2M148](/packages/dedoc-scramble)[spatie/laravel-pdf

Create PDFs in Laravel apps

1.0k6.1M53](/packages/spatie-laravel-pdf)[codewithdennis/filament-select-tree

The multi-level select field enables you to make single selections from a predefined list of options that are organized into multiple levels or depths.

331634.0k37](/packages/codewithdennis-filament-select-tree)[harris21/laravel-fuse

Circuit breaker for Laravel queue jobs. Protect your workers from cascading failures.

24795.1k](/packages/harris21-laravel-fuse)[vormkracht10/laravel-mails

Laravel Mails can collect everything you might want to track about the mails that has been sent by your Laravel app.

25263.1k](/packages/vormkracht10-laravel-mails)[rawilk/profile-filament-plugin

Profile &amp; MFA starter kit for filament.

3915.5k](/packages/rawilk-profile-filament-plugin)

PHPackages © 2026

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