Test the edge cases.
Before your users find them.
Eight delivery and failure scenarios. Exercise your email pipeline and webhook handlers without sending to real recipients.
const response = await fetch(
process.env.ZAPSMTP_API_URL, {
method: 'POST',
headers: {
'Authorization': 'Bearer zap_your_api_key',
'Content-Type': 'application/json'
},
body: JSON.stringify({
from: 'hello@yourdomain.com',
to: ['delivered@simulator.zapsmtp.xyz'],
subject: 'You’re all set.',
html: '<p>Your next big thing starts here.</p>'
})
});Set ZAPSMTP_API_URL to your account’s send endpoint.
Start with
a test key.
Keys that begin with zap_test_, like Halden’s CI tests key, run the full pipeline and never reach a real inbox.
API keys

Check your
webhook handlers.
Every simulated outcome sends the same signed events your production handlers receive.
Webhooks

See what
a bounce does.
Hard bounces and complaints add the address to your suppressions, as they would in production.


Also included
Eight scenarios, one workflow
Delivered, bounced, mailbox full, blocked, delayed, complained, suppressed, and bounce with a specific SMTP code.
Bounce details your handler understands
Inspect Permanent and Transient bounce types, with a subtype for more precise handling.
Send your first email.
Your next email starts with a few lines of code.
Start for free 3,000 emails/month free · No credit card required