This package provides a library of disposable domains and adds a validator to Laravel apps to check that a given email address isn't coming from a disposable email service such as Mailinator
, Guerillamail
, Tempmail
considering all their possible wildcards.
- You can add your own preferred domains to the black list.
- You can white list a domain to bye pass the blacklist. This can be useful in development environment.
- With strict mode, you can control the strictness of the validator, thereby allowing or preventing domains that are not necessarily disposable, but have been classified as disposable.
- Case-aware.
- Wildcard-aware.
The package has been developed and tested to work with the following minimum requirements:
- PHP 8.x
- Laravel 10.x, 11.x
You can install the package via Composer. The service provider is discovered automatically.
composer require veeqtoh/laravel-active-email
You can then publish the package's config file and update it as you'd prefer:
php artisan vendor:publish --provider="Veeqtoh\ActiveEmail\Providers\ActiveEmailProvider"
Add the notblacklisted
validator to your email validation rules array (or string) to ensure that the domain for a given email address is not blacklisted. I'd recommend you add it after the email validator to make sure a valid email is passed through:
'emailField' => 'email|notblacklisted',
or
'emailField' => ['email', 'notblacklisted'],
Instantiate the NotBlackListedEmail
Class as part of your email validation rules array to ensure that the domain for a given email address is not blacklisted. Again, I'd recommend you add it after the email validator to make sure a valid email is passed through:
use Veeqtoh\ActiveEmail\Rules\NotBlackListedEmail;
'emailField' => ['email', new NotBlackListedEmail()],
The package is highly customizable from the config file with the following features:
This value determines the strictness level of this feature. when set to true
, domains in the grey list are also blacklisted.
It is turned on by default, but can be set in your .env file as follows:
DISPOSABLE_EMAIL_STRICT_MODE=true,
This is a list of base domains with or without the TLD that are blacklisted by default. Add a domain to this list to blacklist it.
This is a list of base domains with or without the TLD that aren't blacklisted by default except when in strict mode. Add a domain to this list to whitelist it when the feature is not set to strict mode. Ensure that the domain is not on the black list.
This is a list of base domains with or without the TLD that are blacklisted by default but you want them to be bye passed.
There's always something that can be done to improve this package. I'd keep updating this list as I think of them.
- Crawl the web to grab an updated list of disposable domains.
- Maybe setup a schedule for it..
To run the package's unit tests, run the following command:
vendor/bin/pest
If you find any security related issues, please contact me directly at victorjohnukam@gmail.com to report it.
If you wish to make any changes or improvements to the package, feel free to make a pull request.
Note: A contribution guide will be added soon.
Check the CHANGELOG to get more information about the latest changes.
Check the UPGRADE guide to get more information on how to update this library to newer versions.
The MIT License (MIT). Please see License File for more information.
If you've found this package useful, please consider sponsoring this project. It will encourage me to keep maintaining it.