# Guide — email deliverability

> Canonical HTML: https://acellemail.com/guide/email-deliverability
> Content-Type: text/markdown

Deliverability is the single biggest determinant of whether an email-marketing program succeeds. A USD 350/mo SaaS account with poor sender reputation is worse than a USD 74 self-hosted setup with proper SPF/DKIM/DMARC and a warmed IP.

## The deliverability stack

```
Authentication (SPF + DKIM + DMARC)
        ↓
Sender reputation (IP + domain history)
        ↓
Content quality (no spam triggers, clean HTML)
        ↓
Engagement (opens + clicks + low bounce)
        ↓
List hygiene (no stale addresses, no purchased lists)
        ↓
Recipient inbox
```

If any layer is weak, the whole stack underperforms. AcelleMail's role is to make every layer **operationally easy** on a self-hosted deployment.

## Authentication

### SPF

Tells receiving servers which IPs are allowed to send for your domain. Single TXT record on your DNS. AcelleMail's wizard generates the exact record based on your chosen SMTP transport.

### DKIM

Signs every outgoing message with a cryptographic key proving the sender owns the domain. AcelleMail generates the public/private keypair and outputs the DNS record. Rotate keys quarterly for best hygiene.

### DMARC

Tells receivers what to do with messages that fail SPF and DKIM (quarantine or reject), and where to report aggregated stats. Start with `p=none` to monitor, ramp to `p=quarantine` once you confirm 100% pass rate, then `p=reject` for full enforcement.

## Sender reputation

- **Warm up new IPs** gradually — AcelleMail has a built-in warm-up scheduler that ramps daily volume over 4-8 weeks.
- **Avoid IP-reputation cliffs** — don't switch transports mid-campaign; rotate at quiet windows.
- **Monitor with Postmaster Tools** (Google + Microsoft + Yahoo offer them) and the AcelleMail dashboard's bounce/complaint chart.

## Bounce + complaint handling

- **Hard bounces** (550 / 5xx) — auto-removed from active list after first occurrence
- **Soft bounces** (4xx) — retried with backoff; removed after N consecutive
- **FBL complaints** — auto-update subscriber status to `unsubscribed` via webhook from SES/SendGrid/Mailgun/Postmark

## Unsubscribe handling

- **RFC 8058 one-click** unsubscribe — Gmail and Apple Mail render a native button in their UI
- **RFC 2369 List-Unsubscribe** mailto + URL emitted in every send
- **Signed routes** — unsubscribe URLs are signed via Laravel's URL signing, preventing enumeration attacks

## List hygiene

- **Never buy lists.** It tanks reputation in days and is illegal in most jurisdictions.
- **Run pre-send verification** on new signups via the Athena EVS engine — catches typos and trap addresses.
- **Sunset unengaged subscribers** — automation rule: subscribers with zero opens in 180 days → re-engagement campaign → if still no engagement, suppress.

## Content

- **Plaintext alternative** auto-generated for every HTML send
- **Avoid spam triggers** in subject + body (excessive caps, multiple !!!, "Free money" patterns)
- **Image:text ratio** should stay reasonable — pure-image emails get filtered
- **Personalize** the first paragraph — engagement metrics rise, deliverability follows

## Monitoring

- **Inbox-placement tests** before big sends (paid tools like Litmus, GlockApps; free spot-check by sending to multiple personal accounts across ISPs)
- **Bounce + complaint dashboard** inside AcelleMail
- **DMARC aggregate reports** parsed by a third-party tool (Postmark's free service is a good entry point)

## Next

- [Features (includes deliverability tooling)](https://acellemail.com/features.md)
- [Security](https://acellemail.com/security.md)
- [Guide — self-hosted overview](https://acellemail.com/guide-self-hosted.md)
- [KB — deliverability category](https://acellemail.com/kb/category/sending-deliverability)
