mateusjunges/laravel-cloudflare-mail

Cloudflare Email Service transport for Laravel.

Maintainers

Package info

github.com/mateusjunges/laravel-cloudflare-mail

pkg:composer/mateusjunges/laravel-cloudflare-mail

Fund package maintenance!

mateusjunges

Statistics

Installs: 95

Dependents: 0

Suggesters: 0

Stars: 1

Open Issues: 0

v1.0.1 2026-05-22 17:19 UTC

This package is auto-updated.

Last update: 2026-05-22 17:20:27 UTC


README

Packagist Version Packagist Downloads MIT Licensed Continuous Integration

Readme Banner

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 12 or 13. A Cloudflare account with a verified sender domain and an API token that has the email sending permission.

Installation

composer require mateusjunges/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 Junges\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 cs script runs Rector, Pint, and PHPStan 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 test and composer cs pass.

Security

If you discover a security vulnerability, please review our security policy for how to report it.

Credits

License

The MIT License (MIT). See LICENSE for details.