This package provides a validation rule to prevent trashmail email addresses.
At first you have to add this package to your composer.json
:
composer require elbgoods/laravel-trashmail-rule
After this you can publish the package translation files to adjust the error messages:
php artisan vendor:publish --provider="Elbgoods\TrashmailRule\TrashmailRuleServiceProvider" --tag=lang
php artisan vendor:publish --provider="Elbgoods\TrashmailRule\TrashmailRuleServiceProvider" --tag=config
The package provides a configuration to define the rule behaviour.
You can add your own list of denied domains, these domains will always be blocked.
You can add your own list of allowed domains, these domains will always pass.
- local configuration -
\Elbgoods\TrashmailRule\Providers\ConfigProvider
- https://disposable-email-detector.com -
\Elbgoods\TrashmailRule\Providers\DisposableEmailDetectorProvider
- https://verifier.meetchopra.com -
\Elbgoods\TrashmailRule\Providers\VerifierProvider
This package provides a basic TrashmailRule
which you can use. All more specific rules only extend this rule with a predefined format
.
use Elbgoods\TrashmailRule\Rules\TrashmailRule;
$rule = new TrashmailRule();
By default the rule requires a value - if you want to accept null
values you can use the nullable()
method or set the $required
parameter to false
.
use Elbgoods\TrashmailRule\Rules\TrashmailRule;
$rule = new TrashmailRule(false);
$rule->nullable();
You can also use the facade if you want to check any email address outside validation. This will run the same logic as the validation rule and runs all providers set in the config.
use Elbgoods\TrashmailRule\Facades\Trashmail;
Trashmail::isDisposable('example@elbgoods.de');
You can also check using a single provider only. Keep in mind that all providers only accept the domain to check and not a full email address. The facade provides a method that returns the domain used in an email address.
use Elbgoods\TrashmailRule\Facades\Trashmail;
Trashmail::provider('config')->isDisposable(
Trashmail::getDomain('example@elbgoods.de')
);
If you want to add your own provider you can do so.
use Elbgoods\TrashmailRule\Facades\Trashmail;
use Illuminate\Contracts\Container\Container;
use Elbgoods\TrashmailRule\Contracts\ProviderContract;
Trashmail::extend('custom_provider', static function (Container $app): ProviderContract {
return new CustomProvider();
});
Please see CHANGELOG for more information on what has changed recently.
This package follows semantic versioning.
Please see CONTRIBUTING for details.
Please see SECURITY for details.
The MIT License (MIT). Please see License File for more information.
You're free to use this package, but if it makes it to your production environment we would highly appreciate you buying or planting the world a tree.
It’s now common knowledge that one of the best tools to tackle the climate crisis and keep our temperatures from rising above 1.5C is to plant trees. If you contribute to my forest you’ll be creating employment for local families and restoring wildlife habitats.
You can buy trees at offset.earth/treeware
Read more about Treeware at https://treeware.earth