Skip to content
Scalpels home

Scalpels is officially launching on October 31, 2026. Special early adopter pricing is available now.

← All documentation

Documentation

Sink

Last updated

Sink is a self-hosted mail catcher for staging, integration and end-to-end testing. Your applications hand their outbound mail to Sink instead of delivering it. Sink stores each message, parses it, and shows it in an inbox your team signs in to. A coding agent can check the same mail over MCP without ever receiving a message body.

Sink captures. It never delivers or forwards anything, so nothing sent to it reaches a real recipient.

What Sink is not

  • Not an SMTP server. Mail arrives over HTTP at Sink's /ingest endpoint. Laravel apps use the sink mail transport from the client package; anything else posts the same JSON envelope.
  • Not a production mail service. The client transport refuses to start in production unless you explicitly allow it.
  • Not a replacement for Mail::fake(). Use the fake in unit tests. Sink is for environments where mail is actually sent.
  • No spam scoring, client-rendering previews or mail release. Sink renders HTML in a sandboxed frame and stops there.

How it fits with Scalpels

Scalpels installs Sink into your own GitHub and Laravel Cloud accounts: it forks the repository, provisions the database, queue, object storage and scheduler Sink needs, deploys it and runs its migrations. Your captured mail lives in your Postgres database and your bucket.

Sink is a provider. Once it is running, you attach your other applications to it from Scalpels. Attaching mints a credential on Sink for that application, writes SINK_URL and SINK_TOKEN into the application's environment, and opens a pull request that adds the artisan-build/sink-client package. One Sink installation can receive mail from any number of applications, and every message is labelled with the application it came from.

In these docs

  • Getting started: install Sink through Scalpels, what the install creates, and how to sign in.
  • Connecting your apps: attach an application, switch its mailer to sink, and confirm a message arrives.
  • The inbox: filter captured mail, read a message, download attachments, and delete or purge messages.
  • Agents and MCP: the ten body-blind MCP tools and how to connect an agent to them.
  • Configuration: retention limits, MCP paths and the client-side settings in each sending app.
  • Troubleshooting: the failures you can actually hit, and how to clear them.

Want a branded address for this deployment? Use your own domain.

Changelog

  1. Published.