incentads / disposable
Disposable email and phone number validator
Fund package maintenance!
Propaganistas
Requires
- php: ^8.3
- ext-json: *
- illuminate/cache: ^10.0 || ^11.0 || ^12.0
- illuminate/config: ^10.0 || ^11.0 || ^12.0
- illuminate/console: ^10.0 || ^11.0 || ^12.0
- illuminate/contracts: ^10.0 || ^11.0 || ^12.0
- illuminate/support: ^10.0 || ^11.0 || ^12.0
- illuminate/validation: ^10.0 || ^11.0 || ^12.0
Requires (Dev)
- barryvdh/laravel-ide-helper: ^3.1
- captainhook/captainhook-phar: ^5.24
- captainhook/hook-installer: ^1.0
- ergebnis/composer-normalize: *
- larastan/larastan: ^2
- laravel/pint: ^1.14
- mockery/mockery: ^1.4.2
- orchestra/testbench: *
- phpunit/phpunit: ^10.5
- ramsey/conventional-commits: ^1.5
This package is not auto-updated.
Last update: 2025-05-09 10:07:25 UTC
README
Forked package from Propaganistas/Laravel-Disposable-Email
-
Adds a validator to Laravel for checking whether a given email address isn't originating from disposable email services such as
Mailinator
,Guerillamail
, ... Uses the disposable domains blacklist from disposable/disposable by default. -
Adds a validator to Laravel for checking whether a given phone number (E.164format) isn't origin from disposable phone services. Used the disposable number list from disposable-number
Have the option for using numcheckr service for backup source
Numcheckr integration
Numcheckr is a service that provides an api for checking if a phone number is disposable or not. You can use this service as the main source for checking disposable phone numbers.
To enable this feature, you need to create an account on numcheckr and get an api key. Then add the api key to the numcheckr
configuration value.
'integrations' => [ 'numcheckr' => [ 'url' => env('NUMCHECKR_URL', 'https://numcheckr.com/api/check-number'), 'api_key' => env('NUMCHECKR_API_KEY', ''), ] ]
Installation
-
Run the Composer require command to install the package. The service provider is discovered automatically.
composer require incentads/disposable
-
Publish the configuration file and adapt the configuration as desired:
php artisan vendor:publish --tag=disposable-config
-
Run the following artisan command to fetch an up-to-date list of disposable domains:
php artisan disposable:update
-
Run the following artisan command to fetch an up-to-date list of disposable numbers:
php artisan disposable-numbers:update
-
(optional) It's highly advised to update the disposable domains list regularly. You can either run the command yourself now and then or, if you make use of Laravel's scheduler, you can register the
disposable:update
command:In
routes/console.php
:use Illuminate\Support\Facades\Schedule; Schedule::command('disposable:update')->weekly(); Schedule::command('disposable-numbers:update')->weekly();
Or if you use Laravel 10 or below, head over to the Console kernel:
protected function schedule(Schedule $schedule) { $schedule->command('disposable:update')->weekly(); $schedule->command('disposable-numbers:update')->weekly(); }
Usage
Use the disposable
validator to ensure a given field doesn't hold a disposable email address. You'll probably want to add it after the email
validator to make sure a valid email is passed through:
'field' => 'email|disposable_email',
Use the real_phone
validator to ensure a given field doesn't hold a disposable number.
'field' => 'disposable_phone',
Custom fetches
By default, the package retrieves a new list by using file_get_contents()
.
If your application has different needs (e.g. when behind a proxy) please review the fetcher
configuration value.
🙏 Credits
This project is developed and maintained by Cristian Peter and contributors.
Special thanks to:
- Laravel Framework for providing the most exciting and well-crafted PHP framework.
- Propaganistas for developing the initial code that serves Sentinel as starting point.
- All the contributors and testers who have helped to improve this project through their contributions.
If you find this project useful, please consider giving it a ⭐ on GitHub!