Sandbox Testing
Test your Simply Send integration with realistic email lifecycle outcomes, without sending external email or affecting live sender reputation.
What sandbox testing does
A sandbox workspace is a test-only child workspace. It accepts the same transactional API and SMTP inputs as a live workspace, stores a preview of the content in Simply Send, and produces deterministic lifecycle events. No email is sent to an external mailbox.
Safe provider isolation
Sandbox sends do not call an email provider, affect sender reputation, or add recipients to production suppression lists.
Mock domain verification
Domains added to a sandbox are mock-verified. No DNS record, provider, SPF, or DKIM check is performed.
Production-like observability
Email records, analytics, dashboard results, webhooks, and supported workflow email events identify the simulated outcome.
Short retention
Sandbox email content, email records, events, and related analytics are retained for five days, then removed asynchronously.
Set up a sandbox
- Open Account → Workspaces.
- Click New Workspace.
- Fill in the new workspace form:
- Workspace Type: Sandbox.
- Parent Workspace: an active, paid Live workspace.
- Workspace Name: a name for your test workspace.
- Workspace Email: the contact email for this workspace.
- Click Create Workspace.
- Stay in the Live parent workspace. Open the Email Credits tab. Choose the Sandbox and transfer credits to it. This gives the Sandbox workspace credits to send test emails.
- Go back to the Workspaces view. Click the Sandbox workspace you created.
- After switching to the Sandbox workspace, open Domains.
- Add a strict test subdomain (e.g.
test.example.com) under a verified domain (e.g.example.com) in the direct Live parent workspace. It is verified right away. Do not add DNS records. - Open Compliance Templates. Create an Unsubscribe template and a Company Address template with valid HTML. They are approved right away.
- Create an API key or SMTP credentials. Use them as usual.
- Send only to an allowed test email from the table below.
Allowed test email addresses
This fixed list is the sandbox test-data allow list; it is not configurable. Each address produces a fixed outcome. You may include multiple supported addresses in one request to test separate recipient outcomes; each recipient receives its own simulated record and message ID.
| Recipient | Recorded sequence | Use it to test |
|---|---|---|
| deliver@simplysend.email | Send → Delivery | Verify the successful-send and delivered paths. |
| hard-bounce@simplysend.email | Send → Permanent bounce | Verify invalid-address handling and permanent-bounce reporting. |
| soft-bounce@simplysend.email | Send → Transient bounce | Verify retryable or temporary-failure handling. |
| complain@simplysend.email | Send → Delivery → Complaint | Verify complaint-event processing without creating a real complaint. |
| delay@simplysend.email | Send → Delivery delay → Delivery | Verify that your integration handles an intermediate delay before delivery. |
| open@simplysend.email | Send → Delivery → Open | Verify open-event processing without a real recipient interaction. |
| click@simplysend.email | Send → Delivery → Open → Click | Verify click-event processing without a real recipient interaction. |
400 and SANDBOX_RECIPIENT_NOT_ALLOWED.Test through the API
Send the same request shape you use in live. Substitute the sandbox workspace ID and a sandbox API key. The example uses the Transactional API endpoint, https://tapi.simplysend.email/send. Marketing sandbox sends use https://mapi.simplysend.email/send with a Marketing API key and retain the normal Marketing response fields, including jobId. The API returns immediately after the simulated send is accepted; lifecycle events are processed asynchronously.
A successful response is marked status: "simulated", simulated: true, and environment: "sandbox". It lists the recipient, role, message ID, and selected outcome.
Test through SMTP
Use smtp.simplysend.email with the sandbox workspace credentials. SMTP accepts the message immediately when simulation succeeds; inspect the sandbox workspace for the asynchronous event sequence.
Use the same SMTP setup as a live workspace: STARTTLS on port 587 or SSL/TLS on port 465. See the SMTP Relay guide for client-specific examples.
Verify events, webhooks, and workflows
Dashboard and analytics: The email record shows the complete simulated sequence. With delay@simplysend.email, expect a Delivery delay event before Delivery. Processing is asynchronous, so do not treat the immediate API or SMTP acknowledgement as proof that all downstream events have finished.
Virtual Inbox: In the sandbox workspace, open Virtual Inbox from the left navigation (or /virtual-inbox). Choose Transactional or Marketing, then select a test mailbox to inspect the rendered message and its lifecycle events. The inbox contains only simulated sandbox messages; it is not a configurable or externally reachable mailbox.
Webhooks: Active webhooks subscribed to the corresponding lifecycle events are called. Sandbox webhook payloads include simulated: true and environment: "sandbox" in data.object. Use those fields to route test events away from production automation.
Workflows: Configured email-event workflows receive the standard send, delivery, bounce, complaint, open, and click event types with the same sandbox markers. The delivery-delay record is available in analytics; build workflow logic only around the event types your workflow trigger supports.
Webhook assertion example
Limits and retention
- Rate limit: a sandbox workspace can accept up to 10 API or SMTP sends per minute. Exceeding the limit returns HTTP
429withSANDBOX_RATE_LIMITED; retry after the minute window resets. - Five-day lifecycle: sandbox email content, stored previews, email records, event history, and related analytics expire after five days. Cleanup is asynchronous, so do not rely on a record being removed at an exact clock time.
- No external delivery: addresses outside the simulation list are rejected rather than delivered. Do not use sandbox to test a customer inbox, real recipient engagement, inbound replies, or unsubscribe links.
- Credits: a sandbox has no separate subscription fee, but each simulated recipient uses the sandbox workspace's email balance at the applicable Transactional or Marketing rate. A billing owner can transfer credits to the sandbox from its parent workspace before testing.
Recommended integration test plan
- Send to
deliver@simplysend.email; assert the accepted response, Send event, Delivery event, dashboard status, and webhook marker. - Send to
hard-bounce@simplysend.emailandsoft-bounce@simplysend.email; verify your permanent and retryable bounce paths remain distinct. - Send to
complain@simplysend.email; verify Delivery followed by Complaint handling without changing a real recipient's status. - Send to
delay@simplysend.email; verify event ordering and that delivery is not assumed before the final Delivery event. - Send to
open@simplysend.emailorclick@simplysend.email; verify the Open and Click event paths. - Send to an unsupported address such as
customer@example.com; assert the recipient guard error. - Send more than 10 requests within a minute; assert your client backs off after the rate-limit response.
- Repeat one request with the same idempotency key; verify your application treats the retry as the same logical send.
Moving to live
A sandbox is intentionally separate from live sending. Before production use, create or select a Live workspace, complete normal domain verification, create Live credentials, and replace the simulation recipient with a permitted real recipient. Never promote sandbox credentials or assume a mock-verified domain is live-verified.
Sandbox validates your integration behavior, not real-world inbox placement, DNS configuration, or provider delivery performance.
