Added option to unsubscribe in one-click from emails (#19032)

refs https://github.com/TryGhost/Product/issues/4051
- added a "List-Unsubscribe" header to emails, in compliance with the
RFC 8058 requirements
- Gmail, Apple Mail, Yahoo Mail, and other popular email clients offer
an option to unsubscribe in one-click, based on the "List-Unsubscribe"
header. Some require an HTTPS endpoint, some a mailto address; both
options are provided in the "List-Unsubscribe" header

Co-authored-by: Simon Backx <simon@ghost.org>
Co-authored-by: Djordje Vlaisavljevic <dzvlais@gmail.com>
This commit is contained in:
Sag 2023-11-16 14:50:24 -03:00 committed by GitHub
parent 40a859023f
commit 69ee4a5ff5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 7 deletions

View File

@ -47,10 +47,6 @@ const features = [{
title: 'Tips & donations',
description: 'Enables publishers to collect one-time payments',
flag: 'tipsAndDonations'
},{
title: 'List-Unsubscribe header',
description: 'Set the List-Unsubscribe header in emails',
flag: 'listUnsubscribeHeader'
},{
title: 'AdminX Offers',
description: 'Enables the new offers UI in AdminX settings',

View File

@ -21,7 +21,8 @@ const GA_FEATURES = [
'announcementBar',
'signupForm',
'recommendations',
'editorEmojiPicker'
'editorEmojiPicker',
'listUnsubscribeHeader'
];
// NOTE: this allowlist is meant to be used to filter out any unexpected
@ -43,7 +44,6 @@ const ALPHA_FEATURES = [
'tipsAndDonations',
'importMemberTier',
'lexicalIndicators',
'listUnsubscribeHeader',
'editorEmojiPicker',
'adminXOffers',
'filterEmailDisabled'

View File

@ -758,7 +758,7 @@ exports[`Settings API Edit Can edit a setting 2: [headers] 1`] = `
Object {
"access-control-allow-origin": "http://127.0.0.1:2369",
"cache-control": "no-cache, private, no-store, must-revalidate, max-stale=0, post-check=0, pre-check=0",
"content-length": "4307",
"content-length": "4338",
"content-type": "application/json; charset=utf-8",
"content-version": StringMatching /v\\\\d\\+\\\\\\.\\\\d\\+/,
"etag": StringMatching /\\(\\?:W\\\\/\\)\\?"\\(\\?:\\[ !#-\\\\x7E\\\\x80-\\\\xFF\\]\\*\\|\\\\r\\\\n\\[\\\\t \\]\\|\\\\\\\\\\.\\)\\*"/,