Skip to content

romanzipp/Laravel-Validator-Pizza

Repository files navigation

⚠️ This package has been renamed

You can find the new project at romanzipp/Laravel-MailCheck. This repository will not get any updates anymore.

Laravel Validator.Pizza

Latest Stable Version Total Downloads License GitHub Build Status

A Laravel Wrapper for the Validator.pizza disposable email API made by @tompec.

Features

  • Query the Validator.Pizza API for disposable Emails & Domains
  • Cache responses
  • Store requested domains in database

Installation

composer require romanzipp/laravel-validator-pizza

Configuration

Copy configuration to your project:

php artisan vendor:publish --provider="romanzipp\ValidatorPizza\Providers\ValidatorPizzaProvider"

Run the migration:

php artisan migrate

Change the config to your desired settings:

return [

    // Database storage enabled
    'store_checks' => true,

    // Database table name
    'checks_table' => 'validator_pizza',

    // Cache enabled (recommended)
    'cache_checks' => true,

    // Duration in minutes to keep the query in cache
    'cache_duration' => 30,

    // Determine which decision should be given if the rate limit is exceeded [allow / deny]
    'decision_rate_limit' => 'allow',

    // Determine which decision should be given if the domain has no MX DNS record [allow / deny]
    'decision_no_mx' => 'allow',

    // Makes use of the API key
    'key' => env('VALIDATOR_PIZZA_KEY'),
];

Usage

Controller Validation

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class HomeController extends Controller
{
    public function handleEmail(Request $request)
    {
        $request->validate([
            'email' => 'required|email|disposable_pizza',
        ]);

        // ...
    }
}

Standalone

$checker = new \romanzipp\ValidatorPizza\Checker;

// Validate Email
$validEmail = $checker->allowedEmail('[email protected]');

// Validate Domain
$validDomain = $checker->allowedDomain('ich.wtf');