Laravel email validation that uses the Mailgun API for a three-step validation check.
To find examples of how validation rules can be applied in the Laravel framework, please view the validation docs
Require via composer.
composer require kouz/laravel-mailgun-email-validation
For Laravel >=5.5 the package will be discoverd. For Laravel <=5.4 add package to list of service providers in config/app.php
<?php
//config/app.php
'providers' => [
Kouz\LaravelMailgunValidation\ServiceProvider::class,
],
Publish and fill out the config/mailgun-email-validation.php file with your Mailgun API key.
php artisan vendor:publish --provider="Kouz\LaravelMailgunValidation\ServiceProvider"
Use the following rule to validate your email fields. The rule will first check the address against PHP's FILTER_VALIDATE_EMAIL and then will call the Mailgun API.
$request->validate([
'email' => ['required', 'mailgun_email'],
]);
Further flags can added to the rule to make the validation more strict.
$request->validate([
'email' => ['required', 'mailgun_email:role,disposable,mailbox,strict'],
]);
Each flag if present, will add the following validation rules:
The following configuration will try to check if the email addresses mailbox exists and is not a disposable email address. If Mailgun is not contactable or Mailgun can't perform the mailbox check, the validation will fall back on PHP's FILTER_VALIDATE_EMAIL.
$request->validate([
'email' => ['required', 'mailgun_email:disposable,mailbox'],
]);
This project is licensed under a MIT License which you can find in this LICENSE.
If you have any feedback, comments or suggestions, please feel free to open an issue within this repository.
This package is part of the Laravel Validation Rules collection. If you're after more useful validation rules, head to the Laravel Validation Rules website.