bambamboole / laravel-cloudflare-mail
Cloudflare Email Service transport for Laravel.
Package info
github.com/bambamboole/laravel-cloudflare-mail
pkg:composer/bambamboole/laravel-cloudflare-mail
Requires
- php: ^8.4
- illuminate/http: ^13.0
- illuminate/mail: ^13.0
- illuminate/support: ^13.0
- symfony/mailer: ^8.0
Requires (Dev)
- bambamboole/extended-testbench: ^0.6.1
- larastan/larastan: ^3.10
- laravel/pint: ^1.29
- pestphp/pest: ^5.0
- pestphp/pest-plugin-laravel: ^5.0
- pestphp/pest-plugin-phpstan: ^5.0
- rector/rector: ^2.0
This package is auto-updated.
Last update: 2026-09-01 17:15:06 UTC
README
A Laravel mail driver for Cloudflare Email Service, the outbound email API on Cloudflare's network. Once installed and configured, every Mail::send, queued mailable, and notification routes through Cloudflare via Laravel's mail abstraction.
Requirements
PHP 8.4 or newer. Laravel 13. A Cloudflare account with a verified sender domain and an API token that has the email sending permission.
Installation
composer require bambamboole/laravel-cloudflare-mail
The service provider auto registers via Laravel's package discovery. No manual registration needed.
Quick start
Set the credentials in your .env:
CLOUDFLARE_EMAIL_ACCOUNT_ID=your-account-id CLOUDFLARE_EMAIL_API_TOKEN=your-api-token MAIL_MAILER=cloudflare
Add the cloudflare mailer to config/mail.php:
'mailers' => [ // ... 'cloudflare' => [ 'transport' => 'cloudflare', ], ],
Add the credentials block to config/services.php (the same convention Laravel's built in Postmark and SES drivers follow):
'cloudflare' => [ 'account_id' => env('CLOUDFLARE_EMAIL_ACCOUNT_ID'), 'api_token' => env('CLOUDFLARE_EMAIL_API_TOKEN'), ],
That's it. Your existing mailables and notifications will now be delivered through Cloudflare. Any key set on the mailer block overrides the matching value in services.cloudflare, which is handy for scoping a second mailer entry to a different account.
Documentation
The docs/ folder covers each topic in more depth:
- Installation. Composer install and provider registration.
- Configuration. Environment variables, config files, and Cloudflare dashboard setup.
- Usage. Sending mail through the facade, mailables, notifications, and queued jobs.
- Error handling. Exception types, Cloudflare error codes, and retry semantics.
Versioning
This package follows Semantic Versioning. The public API consists of the cloudflare mailer configuration keys and the Bambamboole\CloudflareMail\Exceptions\CloudflareTransportException class. Every other class is marked @internal and may change in any release, so depend only on the documented configuration and the Laravel mail abstraction.
Testing
composer test
The composer check script runs Pint, PHPStan, Rector, and the test suite together.
Changelog
See CHANGELOG.md for what has changed recently.
Contributing
Contributions are welcome. Please open an issue to discuss substantial changes before submitting a pull request, and make sure composer check passes.
Security
If you discover a security vulnerability, please review our security policy for how to report it.
Credits
This package is a fork of mateusjunges/laravel-cloudflare-mail.
- Manuel Christlieb
- Mateus Junges (original author)
- All Contributors
License
The MIT License (MIT). See LICENSE for details.