Email Best Practices
ResendOfficialCreated by Resend
- Skill
- Guidelines
- Business and productivity
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured framework for managing the entire lifecycle of email communications. It covers technical infrastructure like SPF/DKIM/DMARC authentication, legal compliance across major jurisdictions (GDPR, CAN-SPAM, CASL), and accessibility standards for screen readers and diverse email clients. It also offers guidance on transactional versus marketing email strategies, list management, and building reliable delivery pipelines with retry logic and webhooks.
What it does
- Provides technical guidance for email authentication (SPF, DKIM, DMARC) to improve deliverability.
- Outlines legal requirements for global email compliance including GDPR, CAN-SPAM, and CASL.
- Defines accessibility standards for email content, including screen reader support and contrast.
- Offers architectural patterns for transactional and marketing email workflows.
- Details best practices for list management, bounce handling, and suppression lists.
- Explains how to implement reliable sending with idempotency, retries, and webhook event tracking.
When to use it
- When setting up a new email infrastructure for an application.
- When troubleshooting high bounce rates or emails landing in spam folders.
- When designing transactional email templates like password resets or order confirmations.
- When implementing email capture forms that require legal consent tracking.
- When auditing existing email templates for accessibility and compliance.
Advantages
- Reduces the risk of legal penalties by providing clear compliance guidelines.
- Improves email deliverability by standardizing authentication and list hygiene.
- Ensures emails are accessible to all users, including those using assistive technology.
- Provides a clear architectural path for building production-ready email systems.
- Helps distinguish between transactional and marketing email strategies to optimize engagement.
Usage examples
- “What are the legal requirements for sending marketing emails to users in the EU versus the US?”
- The agent provides a comparison of GDPR and CAN-SPAM, highlighting the need for explicit opt-in consent for GDPR and the requirement for physical addresses and opt-out mechanisms for CAN-SPAM.
- “How do I make my transactional email templates accessible for screen readers?”
- The agent outlines specific HTML requirements, such as setting lang/dir attributes, using role='presentation' for layout tables, and ensuring proper heading hierarchy.
- “My emails are going to spam. What should I check first?”
- The agent directs the user to the deliverability reference to verify DNS authentication (SPF, DKIM, DMARC) and check for common configuration issues.
Install
Download the skill as a ZIP:
https://mp-staging.autogineer.com/agent-skills/resend/email-best-practices/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip email-best-practices.zip -d .agents/skills
Documentation by Resend
Email Best Practices
Guidance for building deliverable, compliant, user-friendly emails.
Architecture Overview
[User] → [Email Form] → [Validation] → [Double Opt-In]
↓
[Consent Recorded]
↓
[Suppression Check] ←──────────────[Ready to Send]
↓
[Idempotent Send + Retry] ──────→ [Email API]
↓
[Webhook Events]
↓
┌────────┬────────┬─────────────┐
↓ ↓ ↓ ↓
Delivered Bounced Complained Opened/Clicked
↓ ↓
[Suppression List Updated]
↓
[List Hygiene Jobs]Quick Reference
| Need to... | See |
|---|---|
| Set up SPF/DKIM/DMARC, fix spam issues | Deliverability |
| Build password reset, OTP, confirmations | Transactional Emails |
| Plan which emails your app needs | Transactional Email Catalog |
| Build newsletter signup, validate emails | Email Capture |
| Send newsletters, promotions | Marketing Emails |
| Ensure CAN-SPAM/GDPR/CASL compliance | Compliance |
| Decide transactional vs marketing | Email Types |
| Handle retries, idempotency, errors | Sending Reliability |
| Process delivery events, set up webhooks | Webhooks & Events |
| Manage bounces, complaints, suppression | List Management |
| Make emails accessible (screen readers, alt text, contrast) | Accessibility |
Start Here
New app? Start with the Catalog to plan which emails your app needs (password reset, verification, etc.), then set up Deliverability (DNS authentication) before sending your first email.
Spam issues? Check Deliverability first—authentication problems are the most common cause. Gmail/Yahoo reject unauthenticated emails.
Marketing emails? Follow this path: Email Capture (collect consent) → Compliance (legal requirements) → Marketing Emails (best practices).
Production-ready sending? Add reliability: Sending Reliability (retry + idempotency) → Webhooks & Events (track delivery) → List Management (handle bounces).
Accessibility?
Most emails fail basic accessibility checks. See Accessibility for lang/dir, presentational tables, headings, alt text, <title>, and contrast.
Files
- ATTRIBUTION.mdAdded by AutoGineer904 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md3.9 KiB
- references/accessibility.md9.3 KiB
- references/compliance.md4.1 KiB
- references/deliverability.md3.3 KiB
- references/email-capture.md3.4 KiB
- references/email-types.md5.7 KiB
- references/list-management.md4.5 KiB
- references/marketing-emails.md3.2 KiB
- references/sending-reliability.md4.5 KiB
- references/transactional-email-catalog.md10.1 KiB
- references/transactional-emails.md2.4 KiB
- references/webhooks-events.md4.2 KiB
references/transactional-email-catalog.md
Transactional Email Catalog
A comprehensive catalog of transactional emails organized by category, plus recommended email combinations for different app types.
When to Use This
Planning what transactional emails your app needs
Choosing the right emails for your app type
Understanding what content each email type should include
Implementing transactional email features
Email Combinations by App Type
Use these combinations as a starting point based on what you're building.
Authentication-Focused App
Apps where user accounts and security are core (login systems, identity providers, account management).
Essential:
Email verification
Password reset
OTP / 2FA codes
Security alerts (new device, password change)
Account update notifications
Optional:
Welcome email (must not be promotional)
Account deletion confirmation
Newsletter / Content Platform
Apps focused on content delivery and subscriptions.
Essential:
Email verification
Password reset
Welcome email (must not be promotional)
Subscription confirmation
Optional:
OTP / 2FA codes
Account update notifications
E-commerce / Marketplace
Apps where users buy products or services.
Essential:
Email verification
Password reset
Welcome email (must not be promotional)
Order confirmation
Shipping notifications
Invoice / receipt
Payment failed notices
Optional:
OTP / 2FA codes
Security alerts
Subscription confirmations (for recurring orders)
SaaS / Subscription Service
Apps with paid subscription tiers and ongoing billing.
Essential:
Email verification
Password reset
Welcome email (must not be promotional)
OTP / 2FA codes
Security alerts
Subscription confirmation
Subscription renewal notice
Payment failed notices
Invoice / receipt
Optional:
Account update notifications
Feature change notifications (for breaking changes)
Financial / Fintech App
Apps handling money, payments, or sensitive financial data.
Essential:
Email verification
Password reset
OTP / 2FA codes (required for sensitive actions)
Security alerts (all types)
Account update notifications
Transaction confirmations
Invoice / receipt
Payment failed notices
Optional:
Welcome email (must not be promotional)
Compliance notices
Social / Community Platform
Apps focused on user interaction and community features.
Essential:
Email verification
Password reset
Welcome email (must not be promotional)
Security alerts
Optional:
OTP / 2FA codes
Account update notifications
Activity notifications (mentions, replies)
Developer Tools / API Platform
Apps targeting developers with API access and integrations.
Essential:
Email verification
Password reset
OTP / 2FA codes
Security alerts
API key notifications (creation, expiration)
Subscription confirmation
Payment failed notices
Optional:
Welcome email (must not be promotional)
Usage alerts (approaching limits)
Feature change notifications
Healthcare / HIPAA-Compliant App
Apps handling protected health information.
Essential:
Email verification
Password reset
OTP / 2FA codes (required)
Security alerts (all types, detailed)
Account update notifications
Appointment confirmations
Optional:
Welcome email (must not be promotional)
Compliance notices
Note: Healthcare apps have strict requirements. Emails should contain minimal PHI and link to secure portals for sensitive information.
Full Email Catalog
Authentication & Security
Email Verification / Account Verification
When to send: Immediately after user signs up or changes email address.
Purpose: Verify the email address belongs to the user.
Content should include:
Clear verification link or code
Expiration time (typically 24-48 hours)
Instructions on what to do
Security notice if link is clicked by mistake
Best practices:
Send immediately (within seconds)
Include expiration notice
Provide resend option
Link to support if issues
OTP / 2FA Codes
When to send: When user requests two-factor authentication code.
Purpose: Provide time-sensitive authentication code.
Content should include:
The OTP code (clearly displayed)
Expiration time (typically 5-10 minutes)
Security warnings
Instructions on what to do if not requested
Best practices:
Send immediately
Code should be large and easy to read
Include expiration prominently
Warn about sharing codes
Provide "I didn't request this" link
Password Reset
When to send: When user requests password reset.
Purpose: Allow user to securely reset forgotten password.
Content should include:
Reset link (with token)
Expiration time (typically 1 hour)
Security warnings
Instructions if not requested
Best practices:
Send immediately
Link expires quickly (1 hour)
Include IP address and location if available
Provide "I didn't request this" link
Don't include the old password
Security Alerts
When to send: When security-relevant events occur (login from new device, password change, etc.).
Purpose: Notify user of account security events.
Content should include:
What happened (clear description)
When it happened
Location/IP if available
Action to take if suspicious
Link to security settings
Best practices:
Send immediately
Be clear and specific
Include actionable steps
Provide way to report suspicious activity
Account Management
Welcome Email
When to send: Immediately after successful account creation and verification.
Purpose: Welcome new users and guide them to next steps (must not be promotional).
Content should include:
Welcome message
Key features or next steps
Links to important resources
Support contact information
Best practices:
Send after email verification
Keep it focused and actionable
Don't overwhelm with information
Set expectations about future emails
Account Update Notifications
When to send: When user changes account settings (email, password, profile, etc.).
Purpose: Confirm account changes and provide security notice.
Content should include:
What changed
When it changed
Action to take if unauthorized
Link to account settings
Best practices:
Send immediately after change
Be specific about what changed
Include security notice
Provide easy way to revert if needed
E-commerce & Transactions
Order Confirmations
When to send: Immediately after order is placed.
Purpose: Confirm order details and provide receipt.
Content should include:
Order number
Items ordered with quantities
Pricing breakdown
Shipping address
Estimated delivery date
Order tracking link (if available)
Best practices:
Send within minutes of order
Include all order details
Make it easy to print or save
Provide customer service contact
Shipping Notifications
When to send: When order ships, with tracking updates.
Purpose: Notify user that order has shipped and provide tracking.
Content should include:
Order number
Tracking number
Carrier information
Expected delivery date
Tracking link
Shipping address confirmation
Best practices:
Send when order ships
Include tracking number prominently
Provide carrier tracking link
Update on major tracking milestones
Invoices and Receipts
When to send: After payment is processed.
Purpose: Provide payment confirmation and receipt.
Content should include:
Invoice/receipt number
Payment amount
Payment method
Items/services purchased
Payment date
Downloadable PDF (if applicable)
Best practices:
Send immediately after payment
Include all payment details
Make it easy to download/save
Include tax information if applicable
Subscriptions & Billing
Subscription Confirmations
When to send: When user subscribes or changes subscription.
Purpose: Confirm subscription details and billing information.
Content should include:
Subscription plan details
Billing amount and frequency
Next billing date
Payment method
Link to manage subscription
Best practices:
Send immediately after subscription
Clearly state billing terms
Provide easy cancellation option
Include support contact
Subscription Renewal Notices
When to send: Before subscription renews (typically 3-7 days before).
Purpose: Notify user of upcoming renewal and charge.
Content should include:
Renewal date
Amount to be charged
Payment method on file
Link to update payment method
Link to cancel if desired
Best practices:
Send with enough notice (3-7 days)
Be clear about amount and date
Make it easy to update payment method
Provide cancellation option
Payment Failed Notices
When to send: When subscription payment fails.
Purpose: Notify user of payment failure and provide resolution steps.
Content should include:
What happened
Amount that failed
Reason for failure (if available)
Steps to resolve
Link to update payment method
Consequences if not resolved
Best practices:
Send immediately after failure
Be clear about consequences
Provide easy resolution path
Include support contact
Notifications & Updates
Feature Announcements (Transactional)
When to send: When a feature the user is using changes significantly.
Purpose: Notify users of changes that affect their use of the service.
Content should include:
What changed
How it affects the user
What action (if any) is needed
Link to more information
Best practices:
Only for significant changes
Focus on user impact
Provide clear next steps
Link to documentation
Note: General feature announcements are marketing emails. Only send as transactional if the change directly affects an active feature the user is using.
Related Topics
Email Types - Understanding transactional vs marketing
Transactional Emails - Best practices for sending transactional emails
Compliance - Legal requirements for each email type
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Resend
- Publisher
- Resend (Official)
- Source
- resend/resend-skills · skills/email-best-practices · commit 389de56
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Resend.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download email-best-practices.zip