TheoKouzelis / laravel-mailgun-email-validation

Laravel email validation that uses the Mailgun API for a three-step validation check
https://documentation.mailgun.com/en/latest/api-email-validation.html#email-validation
MIT License
11 stars 10 forks source link

Laravel Mailgun Email Validation

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

Install

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"

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.

$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:

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.

$request->validate([
    'email' => ['required', 'mailgun_email:disposable,mailbox'],
]);

License

This project is licensed under a MIT License which you can find in this LICENSE.

Feedback

If you have any feedback, comments or suggestions, please feel free to open an issue within this repository.

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.