Sendy is a self-hosted PHP application that uses Amazon SES as its sending backend, popular with cost-conscious senders sending high volumes at fractional Amazon SES pricing. The unsubscribe mechanism uses the [unsubscribe] shortcode in the campaign editor, which Sendy replaces with a signed URL pointing to the Sendy installation. RFC 8058 headers depend on the Sendy version and the underlying SES configuration set. This guide covers the shortcode, the self-hosted suppression model, and how to configure RFC 8058 correctly on SES.
Sendy unsubscribe link
| Tag syntax | [unsubscribe] |
| Placement | Auto-embedded in every campaign footer template |
| Scope | Per-list Sendy DB plus account-wide SES suppression |
| Config path | Sendy admin > Settings > List settings |
| RFC 8058 one-click | Automatic in Sendy 6.0+, manual SES Configuration Set for older versions |
How to add the unsubscribe tag in Sendy
Place the merge tag exactly as shown below in the email template. Sendy replaces it at send time with a signed URL scoped to the recipient and campaign.
[unsubscribe]For custom HTML templates, wrap the tag in an anchor to render a proper hyperlink in the delivered email:
<a href="[unsubscribe]">Unsubscribe from this list</a>Auto-embedded in every campaign footer template
Automatic in Sendy 6.0+, manual SES Configuration Set for older versions The recipient's mailbox provider (Gmail, Yahoo) uses the List-Unsubscribe-Post header to expose the native one-click button on the message. Requires domain authentication with DKIM and DMARC.
Sendy installations must serve unsubscribe links over HTTPS. Unsubscribe URLs over plain HTTP fail modern browser security expectations and trigger spam filters. Install a free TLS certificate and update the Sendy config base URL to HTTPS. Also configure Amazon SNS notifications for bounce and complaint handling, or hard bounces accumulate silently and damage domain reputation.
Testing your Sendy unsubscribe link
- Send a test message to a controlled Gmail address you own via the Sendy campaign preview action
- Click the footer unsubscribe link and confirm the opt-out on the landing page
- Check the subscriber or contact record: the status should be Unsubscribed within seconds
- Verify the RFC 8058 headers in Gmail: open the message, click three dots, then Show original. Look for
List-UnsubscribeandList-Unsubscribe-Post: List-Unsubscribe=One-Click
Want the full 222-platform reference?
See the pillar guide with the compliance landscape, the RFC 8058 deep dive, and the unsubscribe tag for every ESP: How to add an unsubscribe link: the complete 2026 guide →
How to add the Sendy unsubscribe link (step by step)
Sendy campaigns require an unsubscribe shortcode before the Send button becomes active. The default template includes a footer with the link, but custom templates must include the tag manually.
- Open your campaign or draft in the Sendy installation.
- Add or edit a text block in the footer where the unsubscribe link should appear.
- Insert the shortcode
[unsubscribe]. Sendy replaces it at send time with a signed URL pointing tohttps://your-sendy-domain.com/unsubscribe?e=.... - Wrap in an anchor with your preferred label:
<a href="[unsubscribe]">Unsubscribe</a>. Sendy validates presence before the campaign can be sent. - Ensure the Sendy installation URL is HTTPS. Unsubscribe links over plain HTTP fail modern email client requirements and trigger spam filters.
- Send a test campaign to a seed address and click through to verify the unsubscribe page loads and removes the address from the list.
Self-hosted suppression and SES suppression list
Sendy stores unsubscribes and bounces in the local MySQL database, marking addresses as unsubscribed at the list level. Amazon SES maintains a separate account-level suppression list for hard bounces and complaints, populated automatically through SES notification handling. Both suppression sources must be respected: an address suppressed at the SES level cannot be sent to regardless of Sendy list membership. The Sendy admin panel shows suppression status per list; the SES console shows account-level suppression under Sending Statistics > Suppression List.
RFC 8058 configuration on SES
Sendy 6.0 and later inject List-Unsubscribe and List-Unsubscribe-Post headers automatically when sending marketing campaigns. Older versions require manual configuration through the SES Configuration Set with custom header rules. The sending domain must have SPF and DKIM verified in the SES console, and DMARC alignment is strongly recommended. For accounts sending high volume, a dedicated IP through SES Dedicated IP Pool is worth the added cost for reputation isolation and better inbox placement.
Bounce and complaint handling via SNS
Sendy relies on Amazon SNS notifications to receive bounce and complaint data from SES. The Sendy admin panel exposes SNS endpoint URLs that must be configured in the SES console under Configuration Sets > Event Destinations. Without SNS wiring, hard bounces accumulate silently and damage domain reputation. Complaint feedback loops from major mailbox providers are routed through SES to the same SNS endpoint, letting Sendy automatically suppress complaining addresses at the account level.
Frequently Asked Questions
What is the Sendy unsubscribe shortcode?
Use [unsubscribe] in the campaign or template body. Sendy replaces it at send time with a signed URL pointing to the Sendy installation’s unsubscribe handler, unique per recipient and list.
Does Sendy support one-click unsubscribe for Gmail and Yahoo?
Yes on Sendy 6.0 and later, which inject List-Unsubscribe and List-Unsubscribe-Post headers automatically. Older versions require manual SES Configuration Set header rules. In both cases the sending domain must have SPF and DKIM verified in the SES console.
Where are Sendy unsubscribes stored?
Sendy stores unsubscribes in the local MySQL database at the list level. Amazon SES maintains a separate account-level suppression list for hard bounces and complaints. Both must be respected: SES-suppressed addresses cannot receive sends even if the Sendy list marks them as active.
Why is my Sendy installation getting high bounce rates?
Likely SNS notifications are not configured. Without SNS wiring for bounce and complaint feedback, Sendy cannot detect and suppress problem addresses, so the list keeps sending to them. Configure SNS topics in the AWS console and add the endpoint URLs under Sendy’s Settings for each brand.
Do I need HTTPS on my Sendy installation for unsubscribe links?
Yes. Unsubscribe URLs over plain HTTP fail modern browser security expectations and get flagged by mailbox providers. Install a Let’s Encrypt certificate on the Sendy domain and update the Sendy config to use HTTPS in the base URL. This is required for RFC 8058 one-click compliance and general deliverability.
About the Author

Alaa · LinkedIn
Email infrastructure specialist with 8+ years of hands-on experience in SMTP, deliverability, and email verification. I’ve configured and troubleshot mail systems across Postfix, Exchange, and cloud relays, managed IP reputation and warmup campaigns, and built verification pipelines processing millions of addresses. My work spans DNS authentication (SPF, DKIM, DMARC, BIMI), bounce handling, blocklist monitoring, and compliance frameworks including CAN-SPAM and GDPR. I write every article on SMTPedia to give email professionals, developers, and marketers the accurate, RFC-grounded reference they need.
About SMTPedia
SMTPedia is an independent email industry reference covering SMTP, IMAP, POP3, email deliverability, marketing platforms, DNS authentication, and email verification. Every article is researched from official provider documentation, IETF RFCs, and industry best practices. Settings and configurations are verified quarterly.
We are cited as a source by ChatGPT, Microsoft Copilot, and thousands of email professionals worldwide. Learn more about our editorial process.

