Weave Code
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

Ses Laravel Package

async-aws/ses

Async AWS SES client for PHP: send emails and use Amazon SES features with non-blocking, PSR-friendly requests. Lightweight alternative to the full AWS SDK, designed for modern apps and easy integration with your existing HTTP client and event loop.

Deep Wiki
Context7

async-aws/ses is a lightweight PHP client for Amazon Simple Email Service (SES) built on the AsyncAws ecosystem. It provides a focused API for sending emails from your application without pulling in the full AWS SDK, making it a great fit for modern Laravel/PHP projects.

Designed for efficiency and clarity, it supports common SES workflows while staying framework-agnostic and easy to integrate.

  • SendEmail and SendRawEmail support for transactional and custom MIME messages
  • Minimal dependencies compared to the official AWS SDK
  • Works with AsyncAws credential providers and configuration options
  • Typed request/response models for safer integrations
  • Suitable for queues and background jobs via non-blocking-friendly design
Frequently asked questions about Ses
How do I integrate async-aws/ses with Laravel’s Mail facade for async email sending?
Replace synchronous `Mail::send()` calls with `SendEmailJob::dispatch($mailable)`. Bind the package’s `AsyncSesClient` to Laravel’s service container in `config/app.php` under `bindings`. The package abstracts AWS SES operations while leveraging Laravel’s queue system for async processing.
What Laravel queue drivers work best with async-aws/ses for high-volume email sending?
Use Redis or Amazon SQS for high throughput. Database queues may struggle with SES’s 14 messages/sec limit. Ensure queue workers are scaled horizontally—Laravel Horizon or a dedicated queue monitor like Blackfire can help optimize performance.
Does async-aws/ses support AWS SES templates, and how do I configure them?
Yes, the package supports SES templates via the `AsyncSesClient`. Configure template IDs in your job or mailable class, and pass them to the `sendWithTemplate()` method. Template configurations can be stored in `.env` or Laravel’s config files for flexibility.
How do I handle failed SES jobs or throttling errors in production?
Leverage Laravel’s `FailedJob` events to log failures. Configure dead-letter queues (DLQ) in your queue driver settings to isolate problematic jobs. For throttling, implement retries with exponential backoff using the package’s built-in retry logic or Spatie’s circuit-breaker package.
Can async-aws/ses work with Laravel Vapor or serverless deployments?
Yes, but cold starts may introduce latency. Mitigate this by using provisioned concurrency for queue workers in Vapor. Ensure your AWS SES region matches your Vapor deployment region to minimize cross-region latency. Test thoroughly with Laravel’s serverless queue drivers.
What Laravel versions and PHP versions does async-aws/ses support?
The package is optimized for Laravel 10+ and PHP 8.1+. Check the package’s `composer.json` for exact version constraints. For older Laravel versions, verify compatibility with the underlying AWS SDK v3, as newer SDK features may require PHP 8.1+.
How do I test async SES jobs in Laravel’s test suite?
Use Laravel’s `assertQueued()` in PestPHP or PHPUnit to verify jobs are dispatched. Mock AWS SES responses with libraries like `mockery` or `vcr` (e.g., Spatie’s `laravel-vcr`). Test queue workers in isolation using `php artisan queue:work --once` in your test environment.
Will using async-aws/ses reduce AWS SES costs compared to synchronous calls?
Async processing can reduce costs by batching emails and avoiding redundant API calls. However, queue infrastructure (e.g., Redis or SQS) may introduce minor overhead. Monitor SES metrics in AWS CloudWatch to compare costs before/after migration.
Can I use async-aws/ses alongside other Laravel email packages like Laravel Notifications?
Yes, the package integrates with Laravel Notifications. Extend the `SendEmailJob` to handle `Notifiable` interfaces or use it as a fallback for SES-specific features. The package’s `AsyncSesClient` can replace the default Mailer while preserving Notification channel logic.
What alternatives exist for async email sending in Laravel, and why choose async-aws/ses?
Alternatives include direct AWS SDK usage, Spatie’s `laravel-aws` (sync-focused), or third-party services like Mailgun or SendGrid. Choose async-aws/ses for its tight Laravel integration (queues, events, service container), AWS SES-specific optimizations, and async-first design, which avoids blocking HTTP requests.
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.
davejamesmiller/laravel-breadcrumbs
artisanry/parsedown
christhompsontldr/phpsdk
enqueue/dsn
bunny/bunny
enqueue/test
enqueue/null
enqueue/amqp-tools
milesj/emojibase
bower-asset/punycode
bower-asset/inputmask
bower-asset/jquery
bower-asset/yii2-pjax
laravel/nova
spatie/laravel-mailcoach
spatie/laravel-superseeder
laravel/liferaft
nst/json-test-suite
danielmiessler/sec-lists
jackalope/jackalope-transport