Laravel Maily is a Laravel mail transport package that integrates the Maily.id email delivery API directly into Laravel’s mailer pipeline. Maily.id is an API-only service — it provides no SMTP endpoint — so standard Laravel mail drivers cannot communicate with it out of the box. This package bridges that gap by implementing Symfony Mailer’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/yugo412/laravel-maily/llms.txt
Use this file to discover all available pages before exploring further.
AbstractTransport, giving Laravel a first-class maily driver that speaks the Maily HTTP API without requiring any SMTP infrastructure or changes to your existing Mail::to()->send() call sites.
How it works
When your application boots,MailyServiceProvider registers a custom mailer entry called maily directly into Laravel’s runtime mail configuration and then extends the Mail facade via Mail::extend('maily', ...). From that point forward, Laravel’s entire mailer pipeline — queuing, retries, notifications, and events — routes outbound email through the MailyTransport class, which converts each SentMessage into a JSON payload and delivers it to the Maily REST API. No additional service container bindings or driver registration steps are required.
Requirements
Laravel Maily targets modern PHP and Laravel versions. Before installing, confirm your environment meets the following minimum versions:- PHP 8.2 or higher
- Laravel 11 or newer (
illuminate/mail: ^11.0|^12.0|^13.0) - Symfony Mailer 7.0 or higher (
symfony/mailer: ^7.0|^8.0)
What’s supported
Laravel Maily slots into the standard Laravel mail stack, so all of the features you already rely on continue to work without modification.Native Laravel Mail
Use
Mail::raw(), Mail::to()->send(), and Mailable classes exactly as you do today — no API calls to write yourself.Queue mail
Mail::to()->queue() and ShouldQueue Mailables work out of the box, keeping your HTTP responses fast.Notifications
Laravel Notifications that use the
mail channel are automatically routed through the Maily transport.Retry on connection failure
Transient network errors trigger automatic retries via Laravel’s
Http::retry(), with configurable attempt count and delay.Event dispatching
A
MailySentEvent is dispatched after every successful API call, carrying the response id, status, message, and raw data payload for logging or analytics.Known limitations
The following features are not currently supported due to constraints in the Maily API itself:- Attachments — file attachments cannot be sent through the API at this time.
- Multiple recipients — each message may only have a single
Toaddress. - CC and BCC — carbon copy and blind carbon copy recipients are not supported.
Ready to add Laravel Maily to your project? Head over to the Installation guide to get up and running in minutes.