Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Illuminate Mail

Illuminate Mail Laravel Package

async-aws/illuminate-mail

Integrates AsyncAws with Laravel's Illuminate Mail, adding an SES mail transport so Laravel apps can send email through AWS using the lightweight AsyncAws client instead of the official AWS SDK. Simple mailer configuration with no heavy SDK dependency.

View on GitHub
Deep Wiki
Context7

async-aws/illuminate-mail provides a drop-in Laravel mail transport that delivers messages through Amazon SES using the lightweight AsyncAws library instead of the official AWS SDK. It plugs into Laravel's mail manager, so you keep the familiar Mail facade and Blade templates while avoiding the heavier AWS dependency.

  • Custom SES transport registered with Laravel's MailManager
  • Works with existing mailables, views, and notification flows
  • Supports configuration/credentials via standard Laravel config
  • Much smaller dependency footprint than aws/aws-sdk-php
  • Ideal for apps already using AsyncAws services
Frequently asked questions about Illuminate Mail
What does async-aws/illuminate-mail do?
It provides an Amazon SES mail transport for Laravel and other Illuminate applications, built on the lightweight AsyncAws SDK. You register it as a mail transport so Laravel's existing Mail facade, Mailables, and notification emails send through SES. The main appeal is avoiding the full aws/aws-sdk-php dependency while keeping familiar Laravel mail configuration.
How do I install async-aws/illuminate-mail in a Laravel app?
Install it with Composer alongside the AsyncAws SES client, then configure an SES mailer in config/mail.php that points at the transport this package provides. Because it is a Composer package for Laravel, it is expected to register through package auto-discovery rather than manual service provider edits. Confirm the exact class names and config keys against the repository README before wiring it in, since the published documentation is minimal.
How does this differ from using the full AWS SDK for PHP?
The package uses AsyncAws, a set of small, lightweight AWS clients, instead of the monolithic aws/aws-sdk-php. In practice that means a much smaller dependency footprint and faster installs, at the cost of a narrower feature surface than the full SDK offers. It only covers SES mail sending, so other AWS services still need their own clients.
Which Laravel and PHP versions does async-aws/illuminate-mail support?
That is declared in the package's composer.json, so check the require block for the exact PHP and illuminate component constraints before adopting it. The package targets Laravel and generic Illuminate applications, but the constraint set for the 0.1.x line should be verified against your app's composer.lock. Do not assume compatibility with a given Laravel major until you have read those constraints.
Is async-aws/illuminate-mail safe to use in production?
The current line is 0.1.x, which is pre-1.0 and therefore permitted under semver to introduce breaking changes in any increment, including patch releases. Treat it as a spike candidate until you have reviewed the changelog and the diff between versions, and pin the exact version in composer.json instead of using a caret range. It can still be a reasonable production choice for SES mail once you have validated it behind an interface you control.
How do I test mail sending with this transport in Laravel?
Use Laravel's built-in Mail::fake() with assertSent and assertQueued as usual, because the transport sits underneath the Mail facade and does not change the Mailable-level API. For an integration smoke test, point the transport at SES in a sandbox account and send to a verified address. Keep real SES calls out of your feature suite and run them as a separate, explicitly tagged integration test.
How do I configure AWS credentials and region for SES?
Credentials and region are handled by the underlying AsyncAws SES client, so you either supply them through the mailer configuration array or rely on the AsyncAws credential provider chain, such as environment variables or an IAM instance role. You also need a verified sending identity, either a domain or an email address, in whichever SES region you target. Check the package's config keys against the README, since naming can change between pre-1.0 releases.
Does the transport support attachments, HTML mail, and queued mail?
Because it plugs in as a transport, standard Laravel features such as HTML bodies, attachments, and Mailables are rendered by the framework and handed to it. Queued mail works the same way: the queue worker builds the message and the transport sends it, so your normal queue configuration applies. Verify attachment-heavy or raw-message use cases with a smoke test, since MIME handling ultimately depends on the AsyncAws SES client.
What are the alternatives to async-aws/illuminate-mail?
You can use the official aws/aws-sdk-php with Laravel's SES mailer, which is heavier but far more widely used and documented. You can also use SES SMTP credentials with Laravel's built-in SMTP transport, which needs no extra package at all, or one of the community SES mailer packages. This package's niche is teams that already use AsyncAws or want a minimal AWS dependency footprint.
How actively is async-aws/illuminate-mail maintained, and how should I handle upgrades?
It is published under the async-aws vendor and tracks the AsyncAws ecosystem, but the 0.1.5 release notes are essentially empty, which makes version-to-version risk hard to assess. Before upgrading, read the changelog and the diff, and pin exact versions in composer.json until release notes prove reliable. Wrapping the transport in a thin adapter of your own makes swapping it out later a single-class change rather than a codebase-wide refactor.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo
bernskioldmedia/laravel-harvest
bernskiold/laravel-data-scrubber
bernskiold/laravel-currency-converter
bernskiold/laravel-campaign-monitor
bernskioldmedia/laravel-autotranslate
siberfx/telegram-bot
roy-sandip/laravel-view-extended
gregsphotography/site-builder-core
roy-sandip/laravel-view
anodyne/blade-fluentui-icons
webx-ui/module-catalog-collections