Download the PHP package misaf/laravel-email-verification without Composer
On this page you can find all versions of the php package misaf/laravel-email-verification. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download misaf/laravel-email-verification
More information about misaf/laravel-email-verification
Files in misaf/laravel-email-verification
Package laravel-email-verification
Short Description Provider-neutral email domain and deliverability validation for Laravel applications.
License MIT
Homepage https://github.com/misaf/laravel-email-verification
Informations about the package laravel-email-verification
Laravel Email Verification
Provider-neutral email domain and deliverability validation for Laravel.
- A validation rule with an optional domain allow-list plus pluggable deliverability verification
- Driver-based deliverability via a Laravel
Manager - Localized failure messages (en, de, fa)
It does not validate syntax — pair it with Laravel's built-in email rule.
Requirements
PHP 8.4+, Laravel 13.
Installation
This gives you the domain allow-list and the null driver, which treats every
address as deliverable — fine for local and testing, but it performs no real
verification. For that, install a driver package (one, both, or none):
| Package | Driver | Provider |
|---|---|---|
| (core) | null |
none — always Deliverable |
misaf/laravel-email-verification-emailable |
emailable |
Emailable |
misaf/laravel-email-verification-bouncer |
bouncer |
Bouncer |
All service providers are auto-registered. See each driver's README for its credentials and options.
Publish the config:
Usage
Laravel's email rule runs first and bail stops there, so EmailValidation
only ever sees — and only ever spends quota on — a well-formed address.
It is a plain ValidationRule, so it works anywhere Laravel accepts one — form
requests, Validator::make(), and manual validator instances.
new EmailValidation() uses the configured default driver; pass a name to
override per use: new EmailValidation('bouncer').
Verifying an address directly
The facade is the driver boundary: deliverability verification only. It does
not apply allowed_domains — that belongs to the rule, which runs the
allow-list first and short-circuits before spending quota. Use the facade for a
driver's verdict on any address (a queued re-check, say) and the rule for user
input.
Configuration
config/email-verification.php:
default— the driver name (EMAIL_VERIFICATION_DRIVER).allowed_domains— domains the rule accepts, compared case-insensitively. Leave empty to allow any domain. Invalid entries throw anInvalidArgumentException.
That is the whole core configuration. Endpoints, credentials, timeouts, and retries belong to the driver package.
Both drivers can coexist; default picks the one used when none is named:
Verification Outcomes
| Status | Meaning | Validation result |
|---|---|---|
Deliverable |
Positively classified as deliverable | Pass |
Risky |
May accept mail, but has quality concerns | Fail |
Undeliverable |
Positively classified as invalid | Fail |
Unverifiable |
Verification failed or gave no reliable result | Fail |
Provider failures and unknown states are never reported as deliverable.
Registering a custom driver
From a package service provider, defer the registration so provider discovery order cannot matter:
Localization
Messages come from the email-verification translation namespace, e.g.
email-verification::validation.email.risky. To override them:
Testing
License
MIT. See LICENSE.
All versions of laravel-email-verification with dependencies
illuminate/contracts Version ^13.0
illuminate/support Version ^13.0
illuminate/translation Version ^13.0
spatie/laravel-package-tools Version ^1.93