Optimize Email Campaigns: Implementing List-Unsubscribe with SendGrid



To add a List-Unsubscribe header to your SendGrid email script, you can utilize the header method of the Mail object. Here's how you can incorporate it into your existing script:

import sendgrid
from sendgrid.helpers.mail import Email, To, Content, Mail, Header

sg = sendgrid.SendGridAPIClient(api_key=settings.SENDGRID_API_KEY)
from_email = Email(settings.DEFAULT_FROM_EMAIL)
to_email = To(recipient)
subject = "successfully processed"
body = "message body"
content = Content("text/html", body)
mail = Mail(from_email, to_email, subject, content) 
 list_unsubscribe_post_header = Header('List-Unsubscribe-Post', 'List-Unsubscribe=One-Click')
 unsubscribe_header = Header('List-Unsubscribe', '<mailto:unsubscribe@example.com>, <http://yourunsubscribeurl.com>') 
 # Adding List-Unsubscribe header
mail.add_header(list_unsubscribe_post_header)

response = sg.client.mail.send.post(request_body=mail.get())

In this updated snippet, the add_header method adds the List-Unsubscribe header to your email, where unsubscribe@example.com should be replaced with your email address configured to handle unsubscribe requests, and http://yourunsubscribeurl.com should be replaced with the URL where users can unsubscribe via the web. This modification ensures your emails comply with best practices for user unsubscribe mechanisms.


The List-Unsubscribe feature is a mechanism that can be integrated into the email header, offering recipients a straightforward option to opt out from email communications. This feature embeds an unsubscribe link or button adjacent to the sender's address at the top of the email, facilitating a hassle-free unsubscribe process for the recipients. The format for implementing this feature is as follows:

{
  "List-Unsubscribe-Post": "List-Unsubscribe=One Click",
  "List-Unsubscribe": "<mailto:unsubscribe@example.com>, <https://www.unsubscribe.example.com/>"
}

This method is a supplemental but not a complete substitute for the conventional unsubscribe mechanism typically found in the email's body. SendGrid enhances this functionality by automatically including the List-Unsubscribe header in all text and HTML emails when the subscription tracking feature is enabled. Moreover, it adds a List-Unsubscribe-Post header, enabling a one-click unsubscribe process and allowing for the insertion of an unsubscribe tag anywhere in the email's body.

While subscription tracking offers a comprehensive solution, utilizing the List-Unsubscribe header independently is beneficial for those seeking a simple method to facilitate unsubscribing, without fully relying on SendGrid's tracking features. The header supports two main methods for unsubscribing: email and web. The mailto: option specifies the email address for unsubscribe requests, whereas the https: option allows for a web-based unsubscribe process. It's crucial to implement both to accommodate different email providers' requirements and ensure compliance with email marketing regulations.

For detailed guidance on integrating this feature with SendGrid's API and SMTP settings, and to learn more about the importance of adhering to email deliverability and compliance standards, refer to the comprehensive documentation provided by SendGrid.

Comments