Deliverability Best Practices

Maximize inbox placement with actionable guidance

Follow these practices to maximize inbox placement and avoid spam folders.

1. Domain Authentication (SPF + DKIM + DMARC)

Checklist:

  • ✅ Add the three DKIM CNAME records from your domain's records (required to send)
  • ✅ Add SPF record: v=spf1 include:amazonses.com ~all. If the domain already has one, add include:amazonses.com to it instead (e.g. v=spf1 include:amazonses.com include:_spf.mx.cloudflare.net ~all): a domain must have exactly one v=spf1 record, and two break SPF for every sender
  • ✅ Add DMARC policy: v=DMARC1; p=quarantine; rua=mailto:[email protected]

See Domains for setup.

2. From Address Consistency

Use the same "From" email across sends. Changing senders confuses filters.

[email protected] (always)
[email protected], then [email protected]

3. Honor Bounce & Complaint Events

Automatically unsubscribe contacts who:

  • Hard-bounce (invalid address)
  • Complain (mark as spam)

Tratto auto-updates status to bounced or complained. Use webhooks to sync to your database.

app.post('/webhooks/tratto', (req, res) => {
  const event = req.body;
  if (event.type === 'bounced' || event.type === 'complained') {
    // Update your database: mark contact as unsubscribed
    db.contacts.update(event.contactId, { status: 'unsubscribed' });
  }
  res.json({ ok: true });
});

4. List Hygiene

Remove inactive/bounced addresses regularly:

curl "https://api.tratto.email/v1/contacts?status=bounced" \
  -H "Authorization: Bearer tratto_live_..."

Sending to invalid addresses = spam complaints = sender reputation damage.

5. Sending Frequency Recommendations

  • Transactional: Send immediately (password reset, order confirmation)
  • Marketing: 1-2x per week (too frequent = unsubscribes)
  • Newsletters: Weekly or monthly (consistency matters)

High frequency without engagement = spam folder.

6. Content Best Practices

Avoid spam triggers:

  • ❌ ALL CAPS subjects
  • ❌ Excessive exclamation marks: "Buy NOW!!!"
  • ❌ High image-to-text ratio (100% images = spam)
  • ❌ Hidden text (white text on white background)

Do:

  • ✅ Clear, honest subject lines
  • ✅ Balance images with text
  • ✅ One-click unsubscribe link
  • ✅ Real postal address (CAN-SPAM requirement)

7. Monitor Bounce & Complaint Rates

Check analytics weekly:

curl "https://api.tratto.email/v1/analytics/summary?period=7d" \
  -H "Authorization: Bearer tratto_live_..."
  • Bounce rate: < 2% acceptable
  • Complaint rate: < 0.1% acceptable

High rates damage sender reputation. Take action immediately.

8. Ramping Volume

Tratto sends over a shared pool; there are no dedicated IPs. Increase new volume in steps anyway — see Ramping Up Sending Volume.

Deliverability Checklist

  • Domain authenticated (SPF + DKIM + DMARC)
  • Consistent "From" address
  • Bounce/complaint events honored
  • List cleaned of bounced addresses
  • Sending frequency appropriate
  • Content avoids spam triggers
  • Bounce & complaint rates monitored
  • New volume ramped in steps, not in one jump

See Ramping Up Sending Volume for how to increase volume safely.


Edit this page on GitHub

Last updated on