SandyWP
Pricing
Plugin developers Ship builds without the zip-and-upload loop AI-assisted development Let Claude spin up and test sites for you Theme developers Every visitor gets a live demo of your theme Upgrade testing Find breakage before your users do Agencies & freelancers Client demos without touching production Educators & courses A fresh WordPress for every student Support teams Reproduce the bug on the exact stack Sales & product demos A clickable demo for every prospect
AI & MCP Agent onboarding, MCP server, llms.txt Blueprints Reviewable Blueprints for repeatable WordPress sites CLI Manage your site from the terminal Git Deployment Deploy from a git repo on every push GitHub PR Previews Tag SandyWP to review an exact commit Templates Save a site, share a launch link SSH & SFTP Real shell access and local mounts Debug mode WP_DEBUG toggles and log viewer Email Log Capture outgoing WordPress mail, never delivered Cloner Clone a live site into a sandbox Slack Deploy plugins from a Slack mention WordPress Beta Test plugins on the next WordPress release
Documentation Guides, API reference, and the CLI Blog Notes on disposable WordPress and testing Changelog Everything we have shipped, with dates
Contact
Get started

Every email your sandbox sends, captured

wp_mail() is intercepted and logged so you can confirm a contact form, password reset, or receipt actually fired — without ever delivering to a real inbox.

tide-pool · email log
Capture active Never delivered
Your order is confirmed [email protected] 09:41
Password reset requested [email protected] 09:38
New contact form submission [email protected] 09:33
[Woo] New account created [email protected] 09:29

Trusted By

PublishPressPaywallProjectNewsletter GlueInfinite UploadsMetaSlider

Trigger, land, open, confirm

1

Trigger the email

Submit a contact form, reset a password, place a test order — anything that calls wp_mail().

2

Watch it land

The message appears in the Email Log tab in seconds. Nothing left the sandbox.

3

Open the message

Read the exact rendered HTML in an isolated frame, plus recipient, headers, and attachments.

4

Confirm it fired

Now you know the form actually sent — no “did it work?” guessing, no real inbox required.

Real messages, captured safely

wp_mail capture

Every send, recorded

SandyWP intercepts WordPress mail before it leaves. Subject, recipient, headers, and body land in the log instead of vanishing into a missing sendmail.

Isolated preview

See the real message

The HTML body renders in a sandboxed frame exactly as the recipient would see it — styles, buttons, and all — with a plain-text fallback when that’s what was sent.

Safe by default

Nothing leaves by accident

With no SMTP configured, sandbox mail is captured and never reaches a real inbox. Add your own SMTP plugin — Resend, FluentSMTP, Google Workspace — and it sends for real, still logged here.

Open a message and see exactly what shipped

The rendered HTML loads in an isolated frame — the same email your users would have received. Recipient, headers, and attachments sit right beside it.

  • ✓ Sandboxed HTML preview, styles intact
  • ✓ Full headers and recipient list
  • ✓ Plain-text fallback when that’s what was sent

captured email · html

SandyWP

Email capture test

It works.

This message was sent through wp_mail and captured safely inside your sandbox.

Captured, not delivered

What developers ask

Is any email actually delivered?+

Not unless you ask for it. Out of the box there’s no SMTP relay, so mail is captured inside the worker and never reaches a real address. Install an SMTP plugin with your own credentials and delivery goes through as normal.

Do I need to configure SMTP?+

Only if you want real delivery. wp_mail() is intercepted automatically the moment the sandbox boots, so capture works with zero setup. Configure an SMTP plugin and SandyWP steps aside for sending while still logging every message.

Can I use FluentSMTP, WP Mail SMTP, or Resend?+

Yes, any of them. Mail leaves through your provider under your own credentials and domain, and the log records whether each message was sent or rejected — including the SMTP error when it fails.

Can I turn capture off or clear the log?+

Yes. The Email Log tab has a one-click toggle and a clear button. Turning it off only stops recording new messages; it doesn’t change whether they’re delivered.

Does the log survive a reset?+

A reset returns the sandbox to a clean slate, including the captured email. Fresh site, empty inbox.

Stop guessing. See the mail.

Free account, captured inbox, zero SMTP setup.

Start free Read the docs
SandyWP

Real WordPress sandboxes in seconds. Build, test, demo then squash it and start fresh.

Made for WordPress builders · on the coast

Product

  • Features
  • Pricing
  • SandyWP for Slack
  • GitHub PR previews
  • MCP Server

Compare

  • vs InstaWP
  • vs TasteWP
  • vs WP Playground

Resources

  • Blog
  • Changelog
  • Documentation
  • API Docs
  • CLI

Solutions

  • Plugin developers
  • AI-assisted development
  • Theme developers
  • Upgrade testing
  • Agencies & freelancers
  • Educators & courses
  • Support teams
  • Sales & product demos

Stay in the loop

New features, guides, and release notes in your inbox. No spam, unsubscribe anytime.

© 2026 SandyWP. All rights reserved.
Privacy Policy · Terms of Service