$npx -y skills add resend/resend-skills --skill email-best-practicesUse when building email features, emails going to spam, high bounce rates, setting up SPF/DKIM/DMARC authentication, implementing email capture, ensuring compliance (CAN-SPAM, GDPR, CASL), handling webhooks, retry logic, making emails accessible (alt text, headings, contrast, scr
| 1 | # Email Best Practices |
| 2 | |
| 3 | Guidance for building deliverable, compliant, user-friendly emails. |
| 4 | |
| 5 | ## Architecture Overview |
| 6 | |
| 7 | ``` |
| 8 | [User] → [Email Form] → [Validation] → [Double Opt-In] |
| 9 | ↓ |
| 10 | [Consent Recorded] |
| 11 | ↓ |
| 12 | [Suppression Check] ←──────────────[Ready to Send] |
| 13 | ↓ |
| 14 | [Idempotent Send + Retry] ──────→ [Email API] |
| 15 | ↓ |
| 16 | [Webhook Events] |
| 17 | ↓ |
| 18 | ┌────────┬────────┬─────────────┐ |
| 19 | ↓ ↓ ↓ ↓ |
| 20 | Delivered Bounced Complained Opened/Clicked |
| 21 | ↓ ↓ |
| 22 | [Suppression List Updated] |
| 23 | ↓ |
| 24 | [List Hygiene Jobs] |
| 25 | ``` |
| 26 | |
| 27 | ## Quick Reference |
| 28 | |
| 29 | | Need to... | See | |
| 30 | |------------|-----| |
| 31 | | Set up SPF/DKIM/DMARC, fix spam issues | [Deliverability](./references/deliverability.md) | |
| 32 | | Build password reset, OTP, confirmations | [Transactional Emails](./references/transactional-emails.md) | |
| 33 | | Plan which emails your app needs | [Transactional Email Catalog](./references/transactional-email-catalog.md) | |
| 34 | | Build newsletter signup, validate emails | [Email Capture](./references/email-capture.md) | |
| 35 | | Send newsletters, promotions | [Marketing Emails](./references/marketing-emails.md) | |
| 36 | | Ensure CAN-SPAM/GDPR/CASL compliance | [Compliance](./references/compliance.md) | |
| 37 | | Decide transactional vs marketing | [Email Types](./references/email-types.md) | |
| 38 | | Handle retries, idempotency, errors | [Sending Reliability](./references/sending-reliability.md) | |
| 39 | | Process delivery events, set up webhooks | [Webhooks & Events](./references/webhooks-events.md) | |
| 40 | | Manage bounces, complaints, suppression | [List Management](./references/list-management.md) | |
| 41 | | Make emails accessible (screen readers, alt text, contrast) | [Accessibility](./references/accessibility.md) | |
| 42 | |
| 43 | ## Start Here |
| 44 | |
| 45 | **New app?** |
| 46 | Start with the [Catalog](./references/transactional-email-catalog.md) to plan which emails your app needs (password reset, verification, etc.), then set up [Deliverability](./references/deliverability.md) (DNS authentication) before sending your first email. |
| 47 | |
| 48 | **Spam issues?** |
| 49 | Check [Deliverability](./references/deliverability.md) first—authentication problems are the most common cause. Gmail/Yahoo reject unauthenticated emails. |
| 50 | |
| 51 | **Marketing emails?** |
| 52 | Follow this path: [Email Capture](./references/email-capture.md) (collect consent) → [Compliance](./references/compliance.md) (legal requirements) → [Marketing Emails](./references/marketing-emails.md) (best practices). |
| 53 | |
| 54 | **Production-ready sending?** |
| 55 | Add reliability: [Sending Reliability](./references/sending-reliability.md) (retry + idempotency) → [Webhooks & Events](./references/webhooks-events.md) (track delivery) → [List Management](./references/list-management.md) (handle bounces). |
| 56 | |
| 57 | **Accessibility?** |
| 58 | Most emails fail basic accessibility checks. See [Accessibility](./references/accessibility.md) for `lang`/`dir`, presentational tables, headings, alt text, `<title>`, and contrast. |