elbgoods / laravel-trashmail-rule
Laravel validation rule to prevent trashmail email addresses.
Installs: 8 026
Dependents: 0
Suggesters: 0
Security: 0
Stars: 9
Watchers: 4
Forks: 2
Open Issues: 0
Requires
- php: ^8.0
- ext-json: *
- astrotomic/laravel-guzzle: ^2.3
- illuminate/cache: ^8.0 || ^9.0
- illuminate/support: ^8.0 || ^9.0
Requires (Dev)
- orchestra/testbench: ^6.0 || ^7.0
- phpunit/phpunit: ^9.3
- roave/security-advisories: dev-latest
README
This package provides a validation rule to prevent trashmail email addresses.
Installation
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
Configuration
The package provides a configuration to define the rule behaviour.
Denied domains
You can add your own list of denied domains, these domains will always be blocked.
Allowed domains
You can add your own list of allowed domains, these domains will always pass.
supported Providers
- local configuration -
\Elbgoods\TrashmailRule\Providers\ConfigProvider
- https://disposable-email-detector.com -
\Elbgoods\TrashmailRule\Providers\DisposableEmailDetectorProvider
- https://verifier.meetchopra.com -
\Elbgoods\TrashmailRule\Providers\VerifierProvider
Usage
Validation Rule
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();
Facade
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');
single Provider
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') );
custom Provider
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(); });
Changelog
Please see CHANGELOG for more information on what has changed recently.
Versioning
This package follows semantic versioning.
Contributing
Please see CONTRIBUTING for details.
Security
Please see SECURITY for details.
Credits
License
The MIT License (MIT). Please see License File for more information.
Treeware
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