frontier-sh/sinkhole-laravel
Laravel mail transport for Sinkhole — a Cloudflare Worker email trap
2,554
| Install | |
|---|---|
composer require frontier-sh/sinkhole-laravel |
|
| Latest Version: | v1.0.0 |
| PHP: | ^8.1 |
| License: | MIT |
| Last Updated: | Mar 30, 2026 |
| Links: | GitHub · Packagist |
Maintainer: frontier-sh
Sinkhole for Laravel
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-TagandX-Metadata-*are displayed in the Sinkhole UI
License
MIT
Related Packages
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v1.0.0 | ^8.1 | ^10.0| | MIT |