Propaganistas / Laravel-Disposable-Email by Propaganistas

Disposable email validator
1,051,768
433
15
Package Data
Maintainer Username: Propaganistas
Maintainer Contact: Propaganistas@users.noreply.github.com (Propaganistas)
Package Create Date: 2018-03-17
Package Last Update: 2024-04-17
Home Page:
Language: PHP
License: MIT
Last Refreshed: 2024-04-18 15:02:48
Package Statistics
Total Downloads: 1,051,768
Monthly Downloads: 38,059
Daily Downloads: 1,673
Total Stars: 433
Total Watchers: 15
Total Forks: 51
Total Open Issues: 2

Laravel Disposable Email

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version Total Downloads License

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 andreis/disposable-email-domains by default.

Installation

  1. Run the Composer require command to install the package:

    composer require propaganistas/laravel-disposable-email
    
  2. The Service Provider will be auto-discovered. If you're running Laravel 5.4 or below, add the Service Provider manually to the end of the $providers array:

    'providers' => [
       ...
    
       Propaganistas\LaravelDisposableEmail\DisposableEmailServiceProvider::class,
    ],
    
  3. Publish the configuration file and adapt the configuration as desired:

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

    php artisan disposable:update
    
  5. (optional) In your languages directory, add for each language an extra language line for the validator:

    'indisposable' => 'Disposable email addresses are not allowed.',
    
  6. (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, include it over there (App\Console\Kernel):

    protected function schedule(Schedule $schedule)
    {
        $schedule->command('disposable: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',