Outcomes
Simulate delivered, deferred, bounced, complained and unsubscribed, by hand or with magic addresses, and send them to your app.
Try it in the demo.
Real email providers tell your app what happened after sending: the email was delivered, bounced, marked as spam, or the person unsubscribed. Your app usually reacts (stop mailing a dead address, show "email bounced" to an admin). SendMock creates those outcomes on demand.
What it solves
- Your suppression list or "email bounced" banner has never been tested, because real bounces are hard to produce.
- You parse SendGrid, Mailgun, Postmark or SES event webhooks and need realistic payloads.
- Your tests need an address that always bounces, every run.
The outcomes
| Event | Means |
|---|---|
email.delivered | the provider delivered it to the mailbox |
email.deferred | a temporary failure; the provider will retry (a soft bounce in progress) |
email.bounced | a hard bounce (550 5.1.1 user unknown) or a soft bounce after retries, with the SMTP code and text |
email.complained | the recipient marked it as spam |
email.unsubscribed | the recipient used the List-Unsubscribe one-click link |
Four ways to trigger them
-
By hand: open an email and press Simulate, then Delivered, Hard bounce, Soft bounce, Spam complaint or Unsubscribe.
-
Magic addresses: send to one of these and the outcome happens by itself. They follow the Amazon SES mailbox simulator, plus short aliases that work on any domain:
Recipient Outcome [email protected],delivered@<any domain>delivered [email protected],bounce@<any domain>,bounce+hard@<any domain>hard bounce bounce+soft@<any domain>deferred, then a soft bounce [email protected],complaint@<any domain>delivered, then a complaint [email protected]delivered, then an out-of-office reply arrives as a new email [email protected]bounce with a suppression-list reason Turn them off with Magic addresses in Settings > Email.
-
Your own addresses: rules such as "
*@bounce.qa.testalways hard bounces" or "reject*@blocked.testwith 550". See Advanced: email outcome addresses. -
The delivery profile in Settings > Email: off (no outcome events), auto-delivered (every email gets
email.delivered), or realistic (a delay plus a bounce and complaint rate).
Getting them to your app
Outcomes are events, so they go wherever your rules send them. Pick the endpoint's template to match your provider: SendGrid Event Webhook, Mailgun events, Postmark Bounce, SpamComplaint and Delivery, SES via SNS, Resend, or SendMock's native JSON. Each outcome also shows on the email (a badge and a Timeline entry).
Step by step: Recipe: bounces and complaints.