Deliverability best practices

Deliverability is the percentage of your outbound email that reaches the recipient's inbox instead of landing in spam or being rejected. High deliverability depends on your sending reputation, authentication setup, list quality, and message content.

Why deliverability matters

Every email that lands in spam is a missed customer reply, a lost sale, or an invoice that never gets paid. Mailbox providers like Gmail and Outlook use sender reputation to decide placement. A poor reputation built up over weeks of careless sending can take months to repair. Investing time in deliverability upfront saves you from chasing delivery problems later.

Authentication

Email authentication tells receiving servers that your messages are legitimate and have not been tampered with in transit. Three protocols work together:

  • SPF (Sender Policy Framework) declares which servers are allowed to send email for your domain. Receiving servers check the sending IP against your SPF record and reject unauthorized senders.
  • DKIM (DomainKeys Identified Mail) adds a cryptographic signature to every outbound message. The receiving server verifies the signature against a public key in your DNS, confirming the message was not altered.
  • DMARC (Domain-based Message Authentication, Reporting and Conformance) ties SPF and DKIM together with a policy that tells receivers what to do when authentication fails. For a dedicated shipmail sending domain, use p=reject. If other services still send from the same domain, publish a temporary custom policy until every sender is aligned.

shipmail configures DKIM automatically when you add a domain. SPF and DMARC require DNS records on your side. See the DNS records page for the exact values to add.

List hygiene

Sending to invalid or uninterested recipients is the fastest way to damage your reputation.

  • Remove bounced addresses immediately. shipmail adds hard bounces to your suppression list automatically. Do the same in any external list you maintain.
  • Use the suppression list. Before importing contacts into a new tool or campaign, check GET /api/v1/suppressions and exclude any matches.
  • Never buy email lists. Purchased lists contain spam traps, invalid addresses, and people who never asked to hear from you. One campaign to a purchased list can get your domain blocklisted.
  • Re-confirm inactive subscribers. If a contact has not opened or clicked in 90 days, send a re-engagement email. Remove anyone who does not respond.

Domain warm-up

Mailbox providers are suspicious of new domains that suddenly send large volumes of email. A gradual ramp-up builds trust with receiving servers and establishes a positive sending history.

  • Start slow. Send to your most engaged recipients first. Opens and replies signal to providers that your email is wanted.
  • Increase volume gradually. Double your daily sends every few days rather than jumping from 50 to 10,000 overnight.
  • shipmail handles this automatically. New accounts go through a warm-up period with increasing daily limits (50, 200, 500, then your plan limit). Do not try to work around these limits.

Monitoring

You cannot fix what you do not measure. Track these metrics continuously:

  • Bounce rate. Keep hard bounces below 2%. shipmail warns at 3% and throttles at 5%.
  • Complaint rate. Keep complaints below 0.05%. A single spike above 0.1% can trigger throttling.
  • Analytics dashboard. The shipmail dashboard shows bounce and complaint rates, delivery counts, and suppression activity in real time.
  • Webhooks. Set up webhook endpoints to receive real-time notifications for bounces, complaints, and delivery events so your application can react immediately.

Common spam triggers

Spam filters use heuristics to score incoming messages. Avoid these patterns:

  • ALL-CAPS subjects. Writing your subject line in uppercase looks aggressive and triggers spam filters. shipmail rejects subjects over 10 characters that are mostly uppercase.
  • Too many links. Messages stuffed with URLs look like phishing. Keep links to a minimum and make sure every URL serves a clear purpose. shipmail limits messages to 20 unique URLs.
  • No plain-text version. HTML-only messages with no plain-text alternative are more likely to be flagged. Always include a text part.
  • Misleading subjects. Subject lines that do not match the body content (e.g., "Re:" on a first message) violate CAN-SPAM and trigger filters.

List-Unsubscribe

For marketing and bulk email, include a List-Unsubscribe header so recipients can opt out directly from their mail client without marking your message as spam. Gmail and other providers show a visible unsubscribe button when this header is present.

  • Add a List-Unsubscribe header pointing to an HTTPS URL that processes the unsubscribe.
  • Add a List-Unsubscribe-Post header with the value List-Unsubscribe=One-Click to support RFC 8058 one-click unsubscribe.
  • Honor unsubscribe requests immediately. Continuing to send after an unsubscribe request generates complaints and damages your reputation.