Document email address validation step for unsubscribe and resubscribe (8.0 backport) - #970
promptless-for-oss wants to merge 4 commits into
Conversation
…ckport) Backport of the reviewed changes in PR mautic#913 (branch promptless/pr-16870-unsubscribe-validation) onto the 8.0 branch, at the request of maintainer @adiati98. Mautic 7.x/8.x now shows a 'Confirm your email address' validation page where recipients enter the Email address a message was sent to before an unsubscribe or resubscribe link executes, and no longer embeds the Email address in the first-click URL (mautic/mautic PR #16870). Documents this in the Unsubscribing section of channels/emails.rst (including legacy-link behavior and the bot-unsubscribe rationale), the new "Require email validation for unsubscribe" toggle in configuration/settings.rst, and a cross-reference from contacts/preference_center.rst. Content is identical to the reviewed 7.3 PR mautic#913; the three files are the same on 7.3 and 8.0, so the change applies cleanly.
|
I noticed that some CI checks failed for this PR. I'm investigating whether the failures are caused by this suggestion. If they're unrelated or pre-existing, I'll leave this suggestion unchanged and create a separate suggestion if a standalone docs fix is needed. |
adiati98
left a comment
There was a problem hiding this comment.
@promptless-for-oss please address the Vale warnings and suggestions.
| - ``{unsubscribe_text}``: inserts a sentence with a link instructing the Contact to click to unsubscribe. | ||
| - ``{unsubscribe_url}``: inserts the URL to the preferences center when it's activated, or to the unsubscribe page if not. | ||
| - ``{resubscribe_url}``: inserts the URL to the resubscribe page regardless of whether there's a preference centre in use. It resubscribes the Contact. Useful for double opt out Campaigns. | ||
| - ``{unsubscribe_url}``: inserts the URL to the preferences center when it's activated, or to the unsubscribe page if not. The Contact confirms their Email address on a validation page first - see below. |
There was a problem hiding this comment.
Use active instead of passive voice.
There was a problem hiding this comment.
Will do — I'm rewriting this in active voice. I'll follow up here once it's updated.
There was a problem hiding this comment.
Done — I've rewritten this in active voice. The {unsubscribe_url} bullet now reads "…when you activate it" rather than the passive phrasing. Pushed in the latest commit.
| - ``{unsubscribe_text}``: inserts a sentence with a link instructing the Contact to click to unsubscribe. | ||
| - ``{unsubscribe_url}``: inserts the URL to the preferences center when it's activated, or to the unsubscribe page if not. | ||
| - ``{resubscribe_url}``: inserts the URL to the resubscribe page regardless of whether there's a preference centre in use. It resubscribes the Contact. Useful for double opt out Campaigns. | ||
| - ``{unsubscribe_url}``: inserts the URL to the preferences center when it's activated, or to the unsubscribe page if not. The Contact confirms their Email address on a validation page first - see below. |
There was a problem hiding this comment.
This is unlcear. What does "see below" here refer to?
There was a problem hiding this comment.
Good catch — I'm clarifying what "see below" refers to here. I'll follow up in this thread with the revised wording.
There was a problem hiding this comment.
Good catch — the vague "see below" pointed to the email-address validation step documented later in the same section. I've replaced it with "described later in this section" so the reference is concrete. Pushed in the latest commit.
| - ``{unsubscribe_url}``: inserts the URL to the preferences center when it's activated, or to the unsubscribe page if not. | ||
| - ``{resubscribe_url}``: inserts the URL to the resubscribe page regardless of whether there's a preference centre in use. It resubscribes the Contact. Useful for double opt out Campaigns. | ||
| - ``{unsubscribe_url}``: inserts the URL to the preferences center when it's activated, or to the unsubscribe page if not. The Contact confirms their Email address on a validation page first - see below. | ||
| - ``{resubscribe_url}``: inserts the URL to the resubscribe page regardless of whether there's a preference centre in use. It resubscribes the Contact. Useful for double opt out Campaigns. As with unsubscribe links, the Contact confirms their Email address on a validation page first - see below. |
There was a problem hiding this comment.
This is unlcear. What does "see below" here refer to?
There was a problem hiding this comment.
Good catch — I'm clarifying what "see below" refers to here. I'll follow up in this thread with the revised wording.
There was a problem hiding this comment.
Good catch — the vague "see below" pointed to the validation step described later in the same section. I've replaced it with "described later in this section" so the reference is concrete. Pushed in the latest commit.
|
|
||
| .. note:: | ||
|
|
||
| Links in Emails sent by older versions of Mautic no longer unsubscribe or resubscribe automatically on click. If Mautic still has a record of that send, it redirects the Contact to the same confirmation page. If it doesn't, an unsubscribe link shows a 'Record not found.' message, and a resubscribe link shows a page-not-found (``404``) error. |
There was a problem hiding this comment.
We use hyphen instead of parentheses.
There was a problem hiding this comment.
Thanks — I'm updating this to use a hyphen instead of parentheses. I'll follow up here once the change is in.
There was a problem hiding this comment.
Done — I've switched to the hyphen style. This now reads "page-not-found error - HTTP 404" instead of using parentheses. Pushed in the latest commit.
|
In reply to this discussion On it — I'm working through the outstanding Vale warnings and suggestions on the changed files. I'll follow up here once they're resolved. |
- Replace parentheses with hyphen for HTTP 404 (adiati98 review)
- Rewrite {unsubscribe_url} bullet in active voice
- Replace vague 'see below' references with concrete forward-references
- Fix passive voice on validation-page paragraph
|
In reply to this discussion Addressed — I've worked through the Vale findings on the changed lines: fixed the passive-voice hit on the validation paragraph ("the message was sent to" → "Mautic sent the message to") and cleared the parentheses finding via the hyphen edit above. The remaining suggestions on these lines are false positives I've left intentionally: the "use Landing Page" hits fall on generic destination pages (the validation page, the unsubscribe page, the page-not-found error), not the Landing Page feature, and the others are inside verbatim quoted system messages that need to stay exact. One note: I applied your feedback but the tooling couldn't auto re-request your review — our contributor account doesn't have that permission on this upstream repo, so you'll see the new commit on the PR rather than a fresh review request. |
Open in Promptless
Backport of the reviewed unsubscribe/resubscribe email-validation documentation (#913) onto the
8.0branch, at maintainer @adiati98's request.Mautic hardens the public unsubscribe and resubscribe flows against leaked Email links. The
{unsubscribe_url},{unsubscribe_text}, and{resubscribe_url}tokens resolve to a validation page: the Contact lands on a 'Confirm your email address' page and must enter the Email address the message was sent to before the unsubscribe or resubscribe completes. The Contact's Email address is no longer embedded in the first-click URL, which protects against leaked or forwarded links and blocks bot-triggered unsubscribes.Updates the 'Unsubscribing' section of
docs/channels/emails.rst(new confirmation workflow, mismatch error, legacy-link behavior, and bot-unsubscribe rationale), documents the new Require email validation for unsubscribe toggle in the 'Unsubscribe settings' section ofdocs/configuration/settings.rst, and adds a cross-reference fromdocs/contacts/preference_center.rst.The content is identical to the reviewed changes on #913; these three files are the same on the 7.3 and 8.0 branches, so the change applies cleanly.
Trigger Events
Review feedback addressed (@adiati98) — commit
61c2af8,docs/channels/emails.rst:page-not-found (``404``) error→ `page-not-found error - ``HTTP 404```.{unsubscribe_url}bullet now reads "inserts the URL to the Preference Center when you activate it, or to the unsubscribe page if you don't."{unsubscribe_url}): applied — replaced the vague "see below" with "described later in this section".{resubscribe_url}): applied — same concrete forward-reference.Google.Parensfinding via the hyphen edit. Remaining Vale hits on these lines are false positives left intentionally:Mautic.FeatureList"use 'Landing Page'" on generic destination pages (validation page, unsubscribe page, page-not-found), and findings inside the verbatim single-quoted system error strings ('Confirm your email address','This email address does not match...'), which must stay unchanged.