DEV Community

Volanea
Volanea

Posted on

The five-minute checklist before you send your first transactional email

Sending your first transactional email from a new domain is where most launches quietly lose their first hundred signups. Not because the code is wrong, but because the domain has no reputation and the DNS records are half done.

1. Pick a subdomain, not the root

Send from mail.example.com or news.example.com, never from example.com itself. If the sending subdomain gets a bad reputation, your primary domain still carries the website and the human mailbox.

2. DKIM before SPF before DMARC

In that order. DKIM proves the message was authorised by the domain and survives forwarding, SPF breaks on forwarding by design, and DMARC is the policy that tells receivers what to do when either fails. Turning on a strict DMARC policy before DKIM is healthy is a fast way to make your own mail disappear.

3. Send the boring email first

A password reset to your own address, opened in a real client. Check the raw headers: does the DKIM signature say pass, does the return-path match the sending domain, is there a List-Unsubscribe header on anything bulk. Gmail's 'show original' button is the cheapest integration test you will ever run.

4. Log the provider's id, not just your own

When a customer says the email never arrived, you need the message id the receiving provider assigned. Store the id your provider returns and keep it next to your own outbox row. Without it every deliverability question becomes an argument.

5. Make retries idempotent

Your queue will retry. If the retry path does not carry an idempotency key, a timeout becomes a duplicate receipt email. The key belongs on the send call, not on your job runner.

None of this takes long, but all of it has to happen before the first real send. Volanea handles the DNS side per sending domain and exposes the delivery log, so steps 2 and 4 are a dashboard check instead of a shell session.

Top comments (0)