Skip to main content

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

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’s 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 To address.
  • 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.

Build docs developers (and LLMs) love