Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/laravel-validation-rules/email-validation-mailgun


https://github.com/laravel-validation-rules/email-validation-mailgun

Last synced: 3 months ago
JSON representation

Awesome Lists containing this project

README

        

# Laravel Validator Rules - Email Validation Mailgun
Email validation that uses the [Mailgun API](https://documentation.mailgun.com/en/latest/api-email-validation.html#email-validation) 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](https://laravel.com/docs/5.6/validation).

## Install
Require via composer.
```
composer require laravel-validation-rules/email-validation-mailgun
```
For Laravel >=5.5 the package will be discoverd. For Laravel <=5.4 add package to list of service providers in config/app.php
```
[
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](http://php.net/manual/en/filter.filters.validate.php) 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:

* **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.

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

## License
This project is licensed under a MIT License which you can find
[in this LICENSE](https://github.com/TheoKouzelis/laravel-mailgun-email-validation/blob/master/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](https://laravel-validation-rules.github.io/) website.