CAN-SPAM Requirements
- Clear and conspicuous: Easy to find in the email
- Functional for 30 days: Must work at least 30 days after sending
- Process within 10 days: Maximum time to stop sending
- No fees or charges: Unsubscribe must be free
- Minimal information: Cannot require more than email address
- No login required: Should not require account access
Gmail and Yahoo Requirements
For bulk senders (5,000+ daily messages), Gmail and Yahoo require:
One-Click Unsubscribe
- List-Unsubscribe header with HTTPS or mailto option
- List-Unsubscribe-Post header for one-click functionality
- Unsubscribe action with single click (no confirmation page)
Visible Unsubscribe Link
- Clearly visible in email body
- Working link that processes the request
One-Click Is Now Required
Since 2024, Gmail and Yahoo require one-click unsubscribe for bulk senders. Missing this can result in filtering or blocking. Implement List-Unsubscribe headers with POST support.
GDPR Requirements
- Unsubscribing must be as easy as subscribing
- Cannot make the process unnecessarily difficult
- Right to withdraw consent at any time
- Should be processed immediately (not 10 days)
Best Practices Beyond Compliance
Process Immediately
Do not wait 10 days just because the law allows it. Process unsubscribes immediately to:
- Reduce spam complaints
- Avoid irritating subscribers
- Maintain good sender reputation
One-Click in Email Body
Even beyond header requirements, make the in-email unsubscribe one-click when possible.
Preference Center
Offer alternatives to full unsubscribe:
- Reduce email frequency
- Select specific topics
- Pause emails temporarily
But always include a complete unsubscribe option.
Confirmation
Show a confirmation page or send a confirmation email acknowledging the unsubscribe.
Common Mistakes
- Hidden unsubscribe: Tiny text, same color as background
- Broken links: Links that lead to errors
- Login required: Forcing account access to unsubscribe
- Multiple steps: Requiring confirmation, surveys, etc.
- Slow processing: Continuing to send after request
- Missing headers: No List-Unsubscribe implementation
Technical Implementation
List-Unsubscribe Header
Add to email headers:
List-Unsubscribe: <mailto:[email protected]>, <https://example.com/unsubscribe?id=123>
List-Unsubscribe-Post Header
Required for one-click:
List-Unsubscribe-Post: List-Unsubscribe=One-Click
In-Email Link
Place visible unsubscribe link in email footer. Link to immediate unsubscribe action or simple preference page.
