Looking to hire Laravel developers? Try LaraJobs

laravel-cloudflare-mail maintained by tomahock

Description
Laravel mail driver for Cloudflare Email Service
Author
Last update
2026/04/16 18:13 (dev-main)
License
Links
Downloads
0

Comments
comments powered by Disqus

Laravel Cloudflare Mail

A Laravel mail transport driver for Cloudflare Email Service.

Note: Cloudflare Email Service is currently in beta. Ensure your account has access before using this package.

Requirements

  • PHP 8.1+
  • Laravel 10, 11, or 12

Installation

composer require tomahock/laravel-cloudflare-mail

Publish the config file:

php artisan vendor:publish --tag=cloudflare-mail-config

Configuration

Add the following variables to your .env file:

CLOUDFLARE_ACCOUNT_ID=your-account-id
CLOUDFLARE_API_TOKEN=your-api-token

Configure the mailer in config/mail.php:

'mailers' => [
    'cloudflare' => [
        'transport' => 'cloudflare',
    ],
],

Set it as the default mailer:

MAIL_MAILER=cloudflare

Usage

Use Laravel's standard Mail facade — no API-specific code required:

use Illuminate\Support\Facades\Mail;
use App\Mail\WelcomeMail;

Mail::to('user@example.com')->send(new WelcomeMail());

Or with a raw message:

Mail::raw('Hello World', function ($message) {
    $message->to('recipient@example.com')
            ->from('sender@yourdomain.com', 'Your App')
            ->subject('Hello');
});

Setting Up Cloudflare Email Sending

Before sending emails, you must configure the Cloudflare Email Sending service in your account:

  1. Go to Cloudflare Dashboard and select your account
  2. Navigate to EmailEmail Sending (currently in beta — you may need to request access)
  3. Add your sender domain (e.g. yourdomain.com) and follow the DNS verification steps
  4. Add the required DNS records (SPF, DKIM) that Cloudflare provides for your domain

Note: Attempting to send emails before the domain is verified will result in a 500 Internal Server Error from the API (email.sending.error.internal_server).

Creating API Tokens

  1. Go to Cloudflare DashboardMy ProfileAPI Tokens
  2. Create a token with Email Service: Send permission scoped to your account
  3. Copy the token into CLOUDFLARE_API_TOKEN

Your CLOUDFLARE_ACCOUNT_ID is visible in the URL when logged into the Cloudflare dashboard (dash.cloudflare.com/{account_id}/...) or under Account Home → Overview.

Supported Features

Feature Supported
Plain text body
HTML body
CC / BCC
Reply-To
Named addresses ("Name" <email>)
File attachments
Multiple recipients

Running Tests

composer install
vendor/bin/phpunit

License

MIT