SandyWP
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 recipes 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
PricingWhy SandyWPFAQ
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.

Never delivered

Safe by default

Sandbox mail is always captured, never sent to real inboxes — even with capture logging turned off. No SMTP config, no accidental emails to customers.

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?+

No. Sandbox mail is always captured inside the worker and never sent to a real address — that’s true even when capture logging is switched off.

Do I need to configure SMTP?+

No. There’s nothing to set up. wp_mail() is intercepted automatically the moment the sandbox boots.

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 keeps mail from being delivered — it just stops recording new messages.

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