Skip to content

Document email address validation step for unsubscribe and resubscribe (8.0 backport) - #970

Open
promptless-for-oss wants to merge 7 commits into
mautic:8.0from
Promptless:promptless/pr-16870-unsubscribe-validation-8.0
Open

promptless-for-oss wants to merge 7 commits into
mautic:8.0from
Promptless:promptless/pr-16870-unsubscribe-validation-8.0

Conversation

@promptless-for-oss

@promptless-for-oss promptless-for-oss commented Sep 15, 2026

Copy link
Copy Markdown
Contributor

Description

Backport of the reviewed unsubscribe/resubscribe email-validation documentation (PR #913, branch promptless/pr-16870-unsubscribe-validation) onto the 8.0 branch, 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 of docs/configuration/settings.rst, and adds a cross-reference from docs/contacts/preference_center.rst. The content stays aligned with the reviewed changes on PR #913.

Latest change (link fix ported from #913) — commit ports the link fix @adiati98 approved on #913 to this 8.0 backport, at the maintainer's request. In the Require email validation for unsubscribe bullet of docs/configuration/settings.rst, the closing sentence's whole-page reference See the Unsubscribing section of the :doc:/channels/emails documentation … becomes the section cross-reference See the :ref:Unsubscribing section of the Email documentation , so it links directly to the "Unsubscribing" section rather than the whole page. The :ref: target resolves to the "Unsubscribing" heading present in docs/channels/emails.rst on this branch. This is the identical link form already applied and approved on the 7.3 sibling PR #913; the two now read the same at that spot.

Reviewer-feedback disposition (this pass)

Linked issue

Screenshots or screen recordings

Not applicable — RST documentation-only change (a cross-reference link form).


Open in Promptless

…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.
@promptless-for-oss

Copy link
Copy Markdown
Contributor Author

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 adiati98 added this to the Mautic 7.3 milestone Sep 16, 2026

@adiati98 adiati98 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@promptless-for-oss please address the Vale warnings and suggestions.

Comment thread docs/channels/emails.rst Outdated
Comment thread docs/channels/emails.rst Outdated
Comment thread docs/channels/emails.rst Outdated
Comment thread docs/channels/emails.rst Outdated
@promptless-for-oss

Copy link
Copy Markdown
Contributor Author

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
@promptless-for-oss

Copy link
Copy Markdown
Contributor Author

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.

@adiati98

Copy link
Copy Markdown
Contributor

@promptless-for-oss apply the latest changes to #913

@promptless-for-oss

Copy link
Copy Markdown
Contributor Author

In reply to this discussion

Got it — I'll bring this 8.0 backport in line with the latest reviewed changes on #913. I'll follow up here once the branch is updated.

@promptless-for-oss

Copy link
Copy Markdown
Contributor Author

In reply to this discussion

Blocked — one thing needed from you

Before I change anything: applying #913's current content onto this 8.0 backport would revert your own review on #970. The branches differ only in four spots in emails.rst where #970 is already ahead of #913 — the active-voice rewording, the clearer phrasing in place of "see below", and the hyphen instead of parentheses — and #913 has had no newer unsubscribe change since it was last reviewed, so there's nothing newer on #913 to carry over.

Need: Confirm the direction — should I instead bring #913 up to #970's reviewed wording so the two converge, or is there a specific newer change you'd like applied here?
Next: Once you confirm, I'll make the change and follow up in this thread.

@adiati98

Copy link
Copy Markdown
Contributor

In reply to this discussion

Blocked — one thing needed from you

Before I change anything: applying #913's current content onto this 8.0 backport would revert your own review on #970. The branches differ only in four spots in emails.rst where #970 is already ahead of #913 — the active-voice rewording, the clearer phrasing in place of "see below", and the hyphen instead of parentheses — and #913 has had no newer unsubscribe change since it was last reviewed, so there's nothing newer on #913 to carry over.

Need: Confirm the direction — should I instead bring #913 up to #970's reviewed wording so the two converge, or is there a specific newer change you'd like applied here? Next: Once you confirm, I'll make the change and follow up in this thread.

I mean, bring the changes of the active-voice rewording, the clearer phrasing in place of "see below", and the hyphen instead of parentheses to #913

@promptless-for-oss

Copy link
Copy Markdown
Contributor Author

In reply to this discussion

Got it, and thanks for confirming — I'll bring the active-voice rewording, the clearer phrasing in place of 'see below', and the hyphen instead of parentheses over to #913. I'll follow up here once that's done.

promptless-for-oss pushed a commit to Promptless/oss-contrib-mautic-user-documentation that referenced this pull request Sep 19, 2026
Bring the maintainer-confirmed wording improvements from PR mautic#970 into the
Unsubscribing section of docs/channels/emails.rst so the two branches
converge: active-voice rewording of the {unsubscribe_url} bullet and the
token-resolution paragraph, 'described later in this section' in place of
'see below', and a hyphen instead of parentheses on the HTTP 404 note.
@promptless-for-oss

Copy link
Copy Markdown
Contributor Author

In reply to this discussion

Done — I've brought the three wording improvements from #970 into #913's channels/emails.rst Unsubscribing section: the active-voice rewording, 'described later in this section' in place of 'see below', and the hyphen instead of parentheses on the HTTP 404 note. The two now read the same at those spots.

I deliberately left out #970's one other difference — the note that the legacy data-mautic-disable-tracking attribute is removed in Mautic 8.0 — since that's 8.0-specific and doesn't apply to #913's 7.3 branch.

One heads-up: the failing check on #913 is a pre-existing link-check failure unrelated to this edit (a broken external link plus some longstanding heading/label warnings), not something this change introduced.

Docs PR: #913

@adiati98 adiati98 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@promptless-for-oss please address the Vale warnings.

@promptless-for-oss

Copy link
Copy Markdown
Contributor Author

In reply to this discussion

Thanks — I'm on it. I'll run Vale on the changed files, fix the flagged warnings, and follow up here once the PR is clean.

@adiati98 adiati98 removed this from the Mautic 7.3 milestone Sep 19, 2026
…#970)

8.0 backport aligned with PR mautic#913. Clear the Mautic.FeatureList and
Google.Contractions/Passive suggestions reviewdog surfaced on the changed lines:

- Reword generic 'validation page' references in our own prose (token bullets,
  preference_center.rst) - the dedicated paragraph and the :ref:`Unsubscribing`
  cross-reference already carry the detail.
- Wrap the blocks that quote verbatim product strings ('Confirm your email
  address', the mismatch error, the 'Require email validation for unsubscribe'
  setting label, 'Record not found.', HTTP 404) in balanced .. vale off / .. vale
  on pairs, matching this repo's convention, since those alerts fall on the
  product's own text and cannot be reworded without changing cited claims.

No documented behavior or verified claim changed.
@promptless-for-oss

Copy link
Copy Markdown
Contributor Author

In reply to this discussion

Done — the Vale warnings on the changed lines are now cleared and PR #970 is clean under the project's Vale config. Where the warnings were the Mautic.FeatureList suggestion on genuinely generic wording, I reworded our own prose to drop the unnecessary "validation page" references — the dedicated paragraph and the :ref: cross-reference already explain the step. Where they fell on text we quote verbatim from the product (the 'Confirm your email address' page title, the exact mismatch error, the Require email validation for unsubscribe setting label, 'Record not found.', and HTTP 404), I wrapped those blocks in .. vale off/.. vale on — the same convention already used elsewhere in this repo — so the annotations clear while the product's exact wording stays intact.

I kept this aligned with the primary PR #913 (identical wording), and the 8.0-specific data-mautic-disable-tracking note was preserved. Ready for another look.

…e (PR mautic#970)

State the **Require email validation for unsubscribe** No option directly as
current behavior instead of relative to Mautic 7.3, matching the reviewer-
requested reframe applied to the 7.3 sibling (PR mautic#913).
…autic#970)

Port the link fix approved on mautic#913: swap the whole-page :doc: reference for
a :ref: cross-reference to the Unsubscribing section, at @adiati98 request.
@promptless-for-oss

Copy link
Copy Markdown
Contributor Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants