Send test emails
Simulate delivered, bounced, complained, and suppressed events with MailBlastr test addresses — without harming your domain reputation.
While building your integration it is important to exercise the different deliverability outcomes — a delivery, a hard bounce, a spam complaint, a suppressed recipient. MailBlastr provides reserved test addresses that trigger each event reliably, so you can verify your webhooks, event handling, and suppression logic without mailing real people.
Available test addresses
| Address | Simulates |
|---|---|
delivered@mailblastr.dev | A successful delivery — the email advances to delivered. |
bounced@mailblastr.dev | A hard bounce (an SMTP 550 5.1.1 "Unknown User"). The email moves to bounced and the recipient is auto-suppressed. |
complained@mailblastr.dev | The message is delivered but the recipient marks it as spam — a complained event, and the recipient is suppressed. |
suppressed@mailblastr.dev | The recipient is already on your suppression list, so the send is skipped with status suppressed. |
Send to a test address
import { MailBlastr } from 'mailblastr';
const mb = new MailBlastr('mb_xxxxxxxxx');
const { data, error } = await mb.emails.send({
"from": "Acme <hello@yourdomain.com>",
"to": ["bounced@mailblastr.dev"],
"subject": "Testing a bounce",
"html": "<p>This should hard-bounce.</p>"
});
console.log({ data, error });Labeling test runs
The delivered, bounced, and complained addresses support plus-labeling: add any string after a + (e.g. delivered+signup@mailblastr.dev) and the event still fires, but the recipient address now identifies that specific test run. This is useful for correlating webhook callbacks back to the flow that triggered them.
delivered+signup@mailblastr.dev
delivered+password-reset@mailblastr.dev
bounced+import-batch@mailblastr.devsuppressed@mailblastr.dev address does not support labeling.