cristianpeter/laravel-disposable-contact-guard

This package is abandoned and no longer maintained. The author suggests using the https://github.com/IncentAds/disposable.git package instead.

Disposable email validator

2.0.0 2025-02-02 20:50 UTC

This package is auto-updated.

Last update: 2025-02-25 12:57:12 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 wheter a given phone number(E.164format) isn't origin from disposable phone services.. Uses the disposable number list from disposable-number

Have the option for using numcheckr service for backup source

Installation

  1. Run the Composer require command to install the package. The service provider is discovered automatically.

    composer require cristianpeter/laravel-disposable-contact-guard
  2. Publish the configuration file and adapt the configuration as desired:

    php artisan vendor:publish --tag=laravel-disposable-guard
  3. Run the following artisan command to fetch an up-to-date list of disposable domains:

    php artisan disposable:update
  4. Run the following artisan command to fetch an up-to-date list of disposable numbers:

    php artisan disposable-numbers:update
  5. (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 indisposable 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|indisposable',

Use the real_phone validator to ensure a given field doesn't hold a disposable number.

'field' => 'real_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.