frontier-sh/sinkhole-laravel

Laravel mail transport for Sinkhole — a Cloudflare Worker email trap

Maintainers

Package info

github.com/frontier-sh/sinkhole-laravel

pkg:composer/frontier-sh/sinkhole-laravel

Statistics

Installs: 547

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.0 2026-03-30 22:10 UTC

This package is auto-updated.

Last update: 2026-04-30 22:24:22 UTC


README

A Laravel mail transport that sends all outgoing email to a Sinkhole instance — a Cloudflare Worker email trap with a web UI.

Use it in staging or local development to capture emails without delivering them to real inboxes.

Requirements

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

Installation

composer require frontier-sh/sinkhole

The service provider is auto-registered via Laravel's package discovery.

Configuration

Add the transport to config/mail.php:

'mailers' => [
    // ...

    'sinkhole' => [
        'transport' => 'sinkhole',
        'endpoint'  => env('SINKHOLE_ENDPOINT'),
        'api_key'   => env('SINKHOLE_API_KEY'),
        'channel'   => env('SINKHOLE_CHANNEL', 'default'),
    ],
],

Set your environment variables:

MAIL_MAILER=sinkhole
SINKHOLE_ENDPOINT=https://your-worker.workers.dev
SINKHOLE_API_KEY=your-api-key
SINKHOLE_CHANNEL=staging
Variable Description
SINKHOLE_ENDPOINT The URL of your Sinkhole Worker
SINKHOLE_API_KEY An API key created from the Sinkhole web UI
SINKHOLE_CHANNEL Optional label to group emails (defaults to default)

What gets captured

  • To, From, Subject
  • HTML and plain text bodies
  • All email headers
  • Attachments (base64-encoded, stored in R2)
  • Custom headers like X-Tag and X-Metadata-* are displayed in the Sinkhole UI

License

MIT