Test emails
Use Lettermint test addresses to simulate delivery, bounce, and complaint outcomes without sending email to a real recipient.
Use Sandbox mode when you need a project-wide test boundary, an unverified From domain, arbitrary recipient addresses, or more simulated results. Use the addresses on this page for a one-off test in a Live project.
Why use test addresses?
Sending test emails to real mailboxes (including your own) can harm your sender reputation. Repeated bounces, spam complaints, or test content flagged as suspicious may cause mailbox providers to throttle or block your domain. Test addresses let you simulate every scenario without affecting your deliverability metrics.
Test emails sent to @lettermint.dev addresses are:
- Excluded from billing: They do not count toward your monthly email quota
- Excluded from statistics: They do not change your bounce or complaint rates
- Processed instantly: Events are generated within seconds
Test addresses
Send to any of these addresses to trigger specific delivery events:
| Address | Simulated Event | Webhook Event |
|---|---|---|
ok@lettermint.dev | Successful delivery | message.delivered |
softbounce@lettermint.dev | Soft bounce (mailbox full) | message.soft_bounced |
hardbounce@lettermint.dev | Hard bounce (user unknown) | message.hard_bounced |
spamcomplaint@lettermint.dev | Delivery + spam complaint | message.delivered → message.spam_complaint |
dsn@lettermint.dev | Out-of-band DSN bounce | message.hard_bounced |
Use only the five test addresses in the table for a Live project. Other local parts are rejected.
The same five local parts remain available on @testing.lettermint.co for compatibility. Existing integrations do not need to change immediately.
Test addresses in a Sandbox project
Inside a Sandbox project, the same test addresses select a per-recipient result that overrides the message's sandbox_result. Sandbox accepts more local parts than Live: the five names above, plus every Sandbox result name, with or without underscores (for example hard_bounced or hardbounced), and a +label such as hardbounce+signup@lettermint.dev.
See Per-recipient results with test addresses for the full local part table and precedence rules.
Sending test emails
Install the package for your language before you run an SDK example. See Integrations for package links and requirements.
Testing with webhooks
Test addresses are most useful when combined with webhooks. Set up a webhook to receive events, then send test emails to verify your handler processes each event type correctly.
Example: verify bounce handling
- Create a webhook subscribed to
message.hard_bouncedevents - Send to
hardbounce@lettermint.dev - Confirm your webhook receives the event and your application handles it (e.g., marks the address as undeliverable)
Example webhook payload
When you send to softbounce@lettermint.dev, you receive:
Code
See Webhook events for the complete payload reference.
Common testing workflows
Integration testing
Use test addresses in your CI/CD pipeline to verify email sending works without sending real emails:
Code
Manual testing
When developing locally, use a tunnel like ngrok to expose your webhook endpoint, then send test emails to verify the full flow.
Troubleshooting
No webhook received
- Check that the webhook is enabled: Disabled webhooks do not send events
- Verify event subscription: Ensure the webhook subscribes to the relevant event type (e.g.,
message.soft_bounced) - Allow processing time: Test events typically arrive within 5-10 seconds
- Check webhook logs: View recent deliveries in Dashboard → Route → Webhooks → [Your Webhook]
API returns an error
- Verify Project API token: Ensure your token is valid and can send for the project
- Check "from" address: The sender domain must be verified in your project
Test address not recognized
- Use an exact domain: Use
lettermint.devor the compatibletesting.lettermint.codomain (case-insensitive) - Check for typos: Common mistakes:
test.lettermint.co(wrong),lettermint.devm(wrong TLD)
Next steps
Set up webhooks
Receive delivery events through webhooks
Webhook events
See all event types and payloads
Verify domains
Configure DNS for sending
API reference
Complete endpoint documentation