-
Notifications
You must be signed in to change notification settings - Fork 783
Description
Issue Summary
I am attempting to integrate one-click unsubscribe to my emails. I have List-Id and List-Unsubscribe headers set up, and recently added List-Unsubscribe-Post, following RFC8058. Unfortunately, Gmail will not show the "Unsubscribe" button.
#4 of the spec specifies:
- Additional Requirements
The message needs at least one valid authentication identifier. In
this version of the specification, the only supported identifier type
is DKIM [RFC6376]. Hence, senders MUST apply at least one valid DKIM
signature to the message.The List-Unsubscribe and List-Unsubscribe-Post headers MUST be
covered by the signature and included in the "h=" tag of a valid
DKIM-Signature header field.If the message does not have the required DKIM signature, the mail
receiver SHOULD NOT offer a one-click unsubscribe for that message.
(Emphasis mine)
Here are the headers as reported by Gmail:
List-Id: <digest.2.my.site>
List-Unsubscribe: <https://my.site/email/unsubscribe/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW1wbGF0ZSI6ImRpZ2VzdCIsInVpZCI6MiwiaWF0IjoxNTUwNzAwMTY3LCJleHAiOjE1NTMyOTIxNjd9.gExTDZ4qbbSqClIazz2Cc38tXQY2E-A-LzcvrsFG1rs>
List-Unsubscribe-Post: List-Unsubscribe=One-Click
However, here is the DKIM signature, note the missing List-Unsubscribe-Post header, although list-unsubscribe is present.
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nodebb.org; h=content-transfer-encoding:content-type:from:mime-version:list-id: list-unsubscribe:subject:to; s=s1; bh=ecVCRuV9D20XWPvAhAezXrbVGtbF+HhsiPKNYErwQHw=;
I have an authenticated domain with SendGrid, and use Automated Security. I believe the missing header in the DKIM-Signature field may be the reason why Gmail refuses to show the Unsubscribe button.
Technical details:
- sendgrid-nodejs Version: v6.3.1
- Node.js Version: v10.15.1