Laravel Mailgun Email Validation
Laravel email validation that uses the Mailgun API for a three-step validation check., (*1)
To find examples of how validation rules can be applied in the Laravel framework, please view the validation docs, (*2)
Install
Require via composer., (*3)
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, (*4)
<?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., (*5)
php artisan vendor:publish --provider="Kouz\LaravelMailgunValidation\ServiceProvider"
Basic Usage
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., (*6)
$request->validate([
'email' => ['required', 'mailgun_email'],
]);
Further flags can added to the rule to make the validation more strict., (*7)
$request->validate([
'email' => ['required', 'mailgun_email:role,disposable,mailbox,strict'],
]);
Each flag if present, will add the following validation rules:, (*8)
-
role Don't allow role-based addresses such as âadminâ, âsalesâ, âwebmasterâ...
-
disposable Don't allow disposable email domains.
-
mailbox A call is made to the ESP to verify the mailboxes existence. Add strict flag to ensure that Mailgun was able to verify a mailbox and didn't return "Unknown".
-
strict Always require a response from Mailgun to validate. By default if a API request fails, the validation will pass. The strict flag ensures that a Mailgun response was recieved.
Recommended Usage
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., (*9)
$request->validate([
'email' => ['required', 'mailgun_email:disposable,mailbox'],
]);
License
This project is licensed under a MIT License which you can find
in this LICENSE., (*10)
Feedback
If you have any feedback, comments or suggestions, please feel free to open an issue within this repository., (*11)
Laravel Validation Rules
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., (*12)