Consent and forms
This page is for owners, marketing staff and administrators who send mail to customers or collect data through forms. It explains what Exponential does for consent, what each part means for your business, and what you must set up or write yourself.
Warning
Basics, not legal advice. Consent rules differ by country and by the kind of mail. Read the laws that apply to you (the project maps several in E-mail preferences: the law checklist) and ask a lawyer or your data protection officer.
Contents
- The mail gate in one paragraph
- Essential and optional mail
- Double opt-in, unsubscribe and the consent log
- Newsletters
- Forms that collect data
- What you must set up yourself
- Checklist
The mail gate in one paragraph
Since 6.0.15 every mail the installation sends passes a mail gate, whatever transport is used. Optional mail goes only to people who turned it on, one mail per recipient, with a footer and one-click unsubscribe headers (RFC 8058). Essential mail always goes. Every change of a preference is written to a consent log with the exact text the person saw (E-mail preferences: administrator's guide).
Essential and optional mail
| Kind | Examples | Goes to |
|---|---|---|
Essential (security, orders, legal, admin) | password changed, order confirmation | always |
| Optional | newsletters, offers, news | only people who switched the category on; off until they do |
Source: Compliance and GDPR.
Optional categories cannot be on by default unless an administrator explicitly allows it
([CategorySettings] AllowDefaultOn), and the sign-up form shows every box unticked
(The law checklist).
Double opt-in, unsubscribe and the consent log
- Double opt-in for newsletters, offers and news, and for a new e-mail address: nothing of the category is sent until the person confirms.
- Opening a link is not consent: the confirm and unsubscribe pages change nothing until their button is pressed.
- Withdrawal is as easy as consent: the same box turns a category off, "Turn off all optional e-mail" is one button, every optional mail has a one-click link.
- Consent log: time, category, old and new state, source, the exact text shown, IP address, acting user.
- Suppression list: hard bounces, complaints, "stop all" and legal requests; only a salted hash of each address is stored.
- The person's own copy: "Download my e-mail data" in JSON and CSV.
All from The law checklist. Check the state of your site
with php bin/php/console exp:mail:status.
Newsletters
The newsletter extension cjw_newsletter, required by composer.json, lets visitors subscribe to lists "with a
double opt-in", and offers subscribe, confirm, change and unsubscribe pages
(cjw_newsletter). Opens and clicks are counted only when the
site switches tracking on ([TrackingSettings] Tracking=disabled by default), and per person only with consent
(Compliance and GDPR).
The business side is in Newsletters: opt-in and consent.
Forms that collect data
Contact, feedback and lead forms use the information collector: each sending is stored as a collection (Forms with the information collector).
| Good practice | How in Exponential |
|---|---|
| Collect only what you need | Mark only the necessary class attributes as information collectors |
| Say what happens with the data | Put a short notice and a link to your privacy notice next to the form, in the template |
| Record agreement where you need it | A checkbox attribute (ezboolean) can collect information, so a ticked box is stored with the sending |
| Limit who reads submissions | Give infocollector/read only to the people who process them |
| Remove what you no longer need | Setup > Collected information removes collections after a confirmation (Collected information) |
| Stop spam and forged posts | Form tokens (ezformtoken) and reCAPTCHA or hCaptcha (Spam protection for forms) |
Note
A checkbox on a form is stored as one value of that sending. It is not entered in the mail consent log and does not switch on any mail category. If a form should sign someone up for mail, use the mail preference or newsletter sign-up, which have their own double opt-in.
A CAPTCHA service is a third party that receives data from your visitors' browsers; name it in your privacy notice.
What you must set up yourself
From Left to the site:
- The postal address in the mail footer (
mailpreferences.ini [FooterSettings] OrganisationAddress, empty after an installation) and the sender's name (OrganisationName). - A category for every commercial mail sent by custom code.
- Keeping
[GateSettings] SplitRecipients=enabled. - DKIM signing of the unsubscribe headers by the mail server, often your host's job (Mail consent and bounces).
- A link to the privacy notice on the registration form, if your design wants one.
Checklist
- To do: Mail footer filled in;
exp:mail:statusreports no problems. - To do: Every marketing mail has an optional category.
- To do: Newsletter sign-up uses double opt-in; tracking left off unless your notice covers it.
- To do: Every form asks only for what it needs and links the privacy notice.
- To do:
infocollector/readgiven to few people; old collections removed on a schedule. - To do: CAPTCHA and other third-party services named in the privacy notice.
- To do: Legal questions taken to your adviser.
Related pages
- GDPR basics
- Personal data in Exponential
- Building a contact form
- Lists and subscriptions
- Free documentation: this page is free to copy, translate and improve under the GNU FDL 1.3.
Become an Exponential Partner
Partners share their information, provide funding, contribute back and develop the products with us, and that is how Exponential grows. A partner website and dashboard are planned for mid-2027: please become a partner today to speed up our growth rate and land new features faster.