Skip to content

Mail with List-Unsubscribe-Post header does not get whitelisted in DKIM headers #893

@julianlam

Description

@julianlam

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:

  1. 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    type: supportticket that should be redirected to support

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions