What's inside the newsletter from Ecocentric
- Sender
- contact@ecocentric.fr
- Sector
- Beauty
- Emails read
- 2 campaigns, 1 transactional
- Period
- August – October 2026
The main finding
The recipient's address is written into the message on all 2 campaigns.
It is the first of 10 points to fix. The highest score is technical (91/100), the lowest experience (52/100), better than 23% of the 503 brands measured.
One email when a criterion changes state: the Pro version, in early access.
Share
Share this report
August – October 2026 · calculated on 24 October
10 points to fix
Each line leads to the criterion in its family, with the excerpt that establishes it and how to fix it.
-
Priority
The recipient's address is written into the message
Criterion “No recipient identifier in the message”
Compliance
on all 2 campaigns
−10 pts
out of 10 in
Compliance
href adresse:clair · href adresse:url
Links carry no email address, contact identifier or automatic login token in their parameters.
-
To review
The message puts obstacles in the way of assistive technology
Criterion “The message stays readable with assistive technology”
Experience
measured on 2 campaigns
−15 pts
out of 20 in
Experience
Four fixes, all in the template: declare the message language on the <html> tag (lang="en" for an email in English), describe each content image in its alt attribute, mark layout tables with role="presentation", and write links that say where they lead rather than “click here”.
-
To review
The message does not declare its adaptation to screens
Criterion “The message declares its adaptation to screens”
Experience
measured on 2 campaigns
−15 pts
out of 15 in
Experience
The HTML has a <meta name="viewport" content="width=device-width"> tag and @media rules that adapt the width and the columns below 600 px; the fixed 600 px width only holds for desktop clients.
- To review One-click unsubscribe is not announced as RFC 8058 defines it Criterion “One-click unsubscribe, as defined by RFC 8058” Deliverability measured on 2 campaigns −15 pts out of 15 in Deliverability
- To review The published DMARC policy keeps out no impersonation Criterion “DMARC policy that helps keep out some impersonation” Deliverability on all 2 campaigns −15 pts out of 15 in Deliverability
- To review Preheader missing, too short or too long Criterion “The message makes sense without its images, from the inbox on” Experience measured on 2 campaigns −12.5 pts out of 25 in Experience
- Secondary The HTML shows formal deviations Criterion “Well-formed HTML” Technical measured on 2 campaigns −7.5 pts out of 15 in Technical
- Secondary No unsubscribe page announced in the header Criterion “Unsubscribing is possible and announced” Compliance measured on 2 campaigns −7.5 pts out of 15 in Compliance
- Secondary The text version carries less than 80% of the links Criterion “The message can be rendered outside HTML” Experience measured on 2 campaigns −5 pts out of 15 in Experience
- Secondary No link leads to the privacy policy Criterion “The message says who is writing and under which rules” Compliance measured on 2 campaigns −5 pts out of 15 in Compliance
14 criteria met, including « No open-tracking pixel » and « DKIM signature validated ». They are listed in their family, below.
Every send, at the time it arrived
One dot per message received by our subscription since August. Tap a dot to open it; the arrows move from one send to the next.
Technical reading of the send of Oct. 15, 2026 →
- campaigns in 9 weeks
- 2
- about one every 4 weeks, from August to October
- sending day
- No fixed day
- Thursday leads, 1 of the 2 campaigns
- arrival window
- 7 h – 9 h
- 2 of the 2 campaigns
- last send received
- 15 Oct.
- « Vente Flash Absolution : -20% sur toute la marque »
Campaign 1 of 2
Sunday 16 Aug., 8:41
Un cadeau exclusif rien que pour vous 💛
- Type
- Marketing campaign
- Score
- 71 / 100
- Pixel
- None
Campaign 2 of 2
Thursday 15 Oct., 7:05
Vente Flash Absolution : -20% sur toute la marque
- Type
- Marketing campaign
- Score
- 71 / 100
- Pixel
- None
Sending day
- Mon.
- Tue.
- Wed.
- Thu.
- Fri.
- Sat.
- Sun.
Arrival time
No change observed since August
Each campaign is compared with the previous one, criterion by criterion.
Criteria in detail
The 24 criteria + 1 bonus
Compliance
These checks cover what the send imposes on the recipient and what it leaves them: measurement of their behaviour, ways to leave, tracking of their objection.
The calculation · 77 pts out of 100
3 met · 2 partly met · 1 not met
Weight of each criterion in the score.
No open-tracking pixel Met No open-tracking pixel on 2 campaigns 30 pts
30 points out of 30 — met on 2 of 2 campaigns concerned.
Met when no tracking pixel is present. A single pixel is enough for the criterion not to be met on an email.
- CNIL 14/04/2026 · LIL art. 82
- PM-PRIV-001
- The detection rule
Unsubscribing is possible and announced Partly met No unsubscribe page announced in the header on the 2 campaigns concerned (1 of 2 measures met) 7.5/15 pts
7.5 points out of 15 — share of observations met across 2 campaigns.
How to fix it
The unsubscribe link goes in the body of the message, visible without excessive scrolling, and the List-Unsubscribe header is set in the sending settings of your email platform (“unsubscribe header”, “List-Unsubscribe header”). Most platforms add it by default; when it is missing, a transactional template or a direct SMTP send has dropped it.
An unsubscribe link does not increase unsubscribes: it replaces spam complaints, which weigh far more on the sender's reputation.
Met when the message announces unsubscribing in its headers, through a page rather than an email to write, and in its body. The detail says which of the two is missing. Not applicable to a transactional email.
What was measured — 1 met out of 2
- No unsubscribe page announced in the header on the 2 campaigns concerned Not met
- Unsubscribe link in the body on 2 campaigns Met
- RFC 2369
- PM-PRIV-002
- RFC 2369 — The Use of URLs as Meta-Syntax for Core Mail List Commands
The recipient keeps control over tracking Met The recipient keeps control over tracking on 2 campaigns 20 pts
20 points out of 20 — share of observations met across 2 campaigns.
Two measures: does the unsubscribe link go through a tracker, and does a separate path lead to a preference center or to refusing tracking? Neither establishes that a refusal succeeds — checking would require following the link, which would record a click on the sending platform's side. They describe the control left to the recipient, not the result they would get.
What was measured — 1 met out of 1
- Untracked unsubscribe link on 2 campaigns Met
- A separate path leads to a preference center or to refusing tracking Not applicable
- CNIL 14/04/2026 · Postmetry
- PM-PRIV-003
The message says who is writing and under which rules Partly met No link leads to the privacy policy on the 2 campaigns concerned (2 of 3 measures met) 10/15 pts
10 points out of 15 — share of observations met across 2 campaigns.
How to fix it
The footer of the message names the sender (company name, postal address) and links to its privacy policy with a direct link to the website, not through a tracking domain. These details go once into the base template and then appear in every send.
Nothing to lose: these lines already exist on the website; they only need to be carried over.
A commercial email must make it possible to identify the advertiser (CPCE, article L. 34-5), and the recipient must be able to know who processes their data. This indicator groups what a message can show of it.
What was measured — 2 met out of 3
- The message names its sender on 2 campaigns Met
- A reply to the message is possible on 2 campaigns Met
- No link leads to the privacy policy on the 2 campaigns concerned Not met
- CPCE L. 34-5 · directive 2000/31 art. 6 · CAN-SPAM
- PM-PRIV-004
An untracked path leads to the site Met An untracked path leads to the site on 2 campaigns 10 pts
10 points out of 10 — met on 2 of 2 campaigns concerned.
Met when at least one link in the message leads to the brand's site without going through a click counter.
- Postmetry
- PM-PRIV-005
No recipient identifier in the message Not met The recipient's address is written into the message on the 2 campaigns concerned 0/10 pts
0 points out of 10 — met on 0 of 2 campaigns concerned.
Base64-encoded or hashed, it is still the address: a hash is recovered by hashing a list of known addresses. Placed in a URL or a header, it travels wherever the message goes — redirect server logs, analytics tools, browser history.
The excerpt that establishes it
href adresse:clair · href adresse:url
How to fix it
Links carry no email address, contact identifier or automatic login token in their parameters. In the email platform, these come from merge variables inserted into URLs (?email={{contact.email}}, ?uid=…): remove them from the template's links, and turn off login-by-link if it is offered.
The platform still identifies the recipient for tracked clicks; what changes is that the address no longer travels in clear to the website, its analytics and its partners.
Met when the recipient's address appears — neither in clear, nor encoded, nor hashed — in no URL and no proprietary header. Addressing headers do not count: they carry it by design.
- Postmetry · RGPD art. 4 en repère
- PM-PRIV-020
Deliverability
These checks read the authentication verdict set by our server when the message arrived. This verdict is dated by construction: we never recalculate it, which would query today's DNS rather than the DNS of the day the email was sent.
The calculation · 55 pts out of 85, scaled to 100
4 met · 2 not met
Weight of each criterion in the score.
DKIM signature validated Met Valid DKIM signature on 2 campaigns 20 pts
20 points out of 20 — met on 2 of 2 campaigns concerned.
Met when our receiving server validated the DKIM signature of the email.
- RFC 6376 · RFC 8601
- PM-DELIV-001
- RFC 6376 — DomainKeys Identified Mail (DKIM) Signatures
- RFC 8601 — Message Header Field for Indicating Message Authentication Status
DMARC alignment validated Met DMARC alignment verified on 2 campaigns 20 pts
20 points out of 20 — met on 2 of 2 campaigns concerned.
Met when the domain shown in the sender matches the one that authenticated the message.
- RFC 9989
- PM-DELIV-002
- RFC 9989 — Domain-Based Message Authentication, Reporting, and Conformance (DMARC)
DMARC policy that helps keep out some impersonation Not met DMARC policy in observation only on the 2 campaigns concerned 0/15 pts
0 points out of 15 — met on 0 of 2 campaigns concerned.
How to fix it
A _dmarc.<domain> TXT record declares the policy: v=DMARC1; p=quarantine; rua=mailto:… at the very least, p=reject once the sending sources are aligned. The move happens in stages (p=none with reports, then quarantine, then reject) over a few weeks, reading the reports to find the tools that send on behalf of the domain.
A none policy prevents no spoofing of the domain; quarantine or reject closes the door and meets the Gmail and Yahoo requirements for bulk senders.
Met when the published policy is “reject” or “quarantine”. A “none” policy asks nothing of mail providers: it is published with no effect on messages that impersonate the domain.
- RFC 9989 §4.7
- PM-DELIV-003
- RFC 9989 — section 4.7, “p” tag
No SPF failure Met No SPF failure on 2 campaigns 10 pts
10 points out of 10 — met on 2 of 2 campaigns concerned.
Met when SPF does not fail. An SPF “none” alongside a valid DKIM and DMARC is a common and legitimate configuration: it is not penalized.
- RFC 7208
- PM-DELIV-004
- RFC 7208 — Sender Policy Framework (SPF) for Authorizing Use of Domains in Email
One-click unsubscribe, as defined by RFC 8058 Not met One-click unsubscribe missing or incomplete — none of the 2 measures is met 0/15 pts
0 points out of 15 — share of observations met across 2 campaigns.
How to fix it
Two headers are added to every marketing send: List-Unsubscribe with an https URL, and List-Unsubscribe-Post: List-Unsubscribe=One-Click. Platforms that support them turn them on in the sending settings; the URL must accept a POST request and unsubscribe without an intermediate page.
Gmail and Yahoo have required it from bulk senders since 2024; it does not apply to transactional messages.
Met when the “List-Unsubscribe” header carries an https address and “List-Unsubscribe-Post” is exactly “List-Unsubscribe=One-Click”. This is what Gmail and Yahoo require of bulk senders: the mailbox's button then acts without opening a page. Not applicable to a transactional email.
What was measured — 0 met out of 2
- The unsubscribe header carries no https address on the 2 campaigns concerned Not met
- One-click unsubscribe not announced on the 2 campaigns concerned Not met
- RFC 8058 · Gmail et Yahoo
- PM-DELIV-005
A DKIM signature that covers what matters Met The DKIM signature covers what matters in the message on 2 campaigns 5 pts
5 points out of 5 — share of observations met across 2 campaigns.
What the signature covers, not only that it passes: an algorithm accepted by RFC 8301, the whole body signed, the From, Subject, Date and List-Unsubscribe headers signed, a signature not expired on receipt. Not applicable without a DKIM signature.
What was measured — 3 met out of 3
- Accepted signing algorithm on 2 campaigns Met
- Whole body signed on 2 campaigns Met
- Essential headers signed on 2 campaigns Met
- Signature valid on receipt Not applicable
- RFC 6376 · RFC 8301
- PM-DELIV-006
Technical
These checks cover what email clients actually do with the message: truncation, style blocks removed, resources never loaded. Each threshold states where it comes from: the documented behaviour of an email client, a specification, or our own method.
The calculation · 77 pts out of 85, scaled to 100
5 met · 1 partly met
Weight of each criterion in the score.
HTML under Gmail's clipping threshold Met HTML under Gmail's clipping threshold on 2 campaigns 25 pts
25 points out of 25 — met on 2 of 2 campaigns concerned.
Met when the HTML part stays under 102 KB. Beyond that, Gmail cuts off the end of the message — and the end is where the unsubscribe link and the notices are.
- Gmail
- PM-TECH-001
A shallow template Met Shallow template on 2 campaigns 20 pts
20 points out of 20 — share of observations met across 2 campaigns.
Met when layout tables are nested no more than 6 levels deep. Beyond that, the Word engine shared by desktop Outlook and the diverging clients each render the template their own way.
What was measured — 1 met out of 1
- Lightly nested layout tables on 2 campaigns Met
- Postmetry
- PM-TECH-002
Well-formed HTML Partly met The HTML shows formal deviations — 2 of 4 measures met 7.5/15 pts
7.5 points out of 15 — share of observations met across 2 campaigns.
How to fix it
Form errors (unclosed tags, duplicated attributes, invalid table/div nesting) come from blocks pasted between editors or from hand edits in the code. Run the HTML through a validator before sending, and fix it at the source in the template rather than in each campaign.
Malformed HTML renders differently from one email client to another, and it is the most common cause of a broken display in Outlook or on mobile.
A doctype, a character set declared in the document, balanced tags and unique identifiers. Each client repairs incomplete markup its own way, which is what makes rendering unpredictable. End tags that HTML makes optional do not count.
What was measured — 2 met out of 4
- No doctype declared on the 2 campaigns concerned Not met
- No character set declared in the HTML on the 2 campaigns concerned Not met
- Balanced tags on 2 campaigns Met
- Unique identifiers on 2 campaigns Met
- WHATWG
- PM-TECH-030
Every link leads somewhere Met Every link leads somewhere on 2 campaigns 10 pts
10 points out of 10 — met on 2 of 2 campaigns concerned.
Met when no link is empty, reduced to “#” or written as “javascript:”. Such a link leads nowhere, and most clients neutralise it. Not applicable if the message contains no link.
- Postmetry
- PM-TECH-031
No remote stylesheet Met No remote stylesheet on 2 campaigns 10 pts
10 points out of 10 — met on 2 of 2 campaigns concerned.
Met when the message calls no external stylesheet, through “link” or “@import”. Several clients never load them. A font stylesheet does not count: without it, the text falls back to another font.
- caniemail
- PM-TECH-020
- <link> in an email — support by client
The message follows the shape of an email Met The message follows the shape of an email on 2 campaigns 5 pts
5 points out of 5 — share of observations met across 2 campaigns.
Lines of 998 bytes at most, readable Message-ID and Date, a character set announced on every text part, a transfer encoding consistent with the content (RFC 5322, RFC 2045). Most servers tolerate these deviations, each in its own way.
What was measured — 5 met out of 5
- Lines of 998 bytes at most on 2 campaigns Met
- Well-formed Message-ID on 2 campaigns Met
- Readable date on 2 campaigns Met
- Character set announced on every text part on 2 campaigns Met
- Consistent transfer encoding on 2 campaigns Met
- RFC 5322 · RFC 2045
- PM-TECH-010
Experience
Four questions about what becomes of the message once received: does it stay understandable, can the recipient still act, can a client render it, can a screen display it. Automatic detection only covers what is declared in the message.
The calculation · 52 pts out of 100
2 met · 3 partly met · 1 not met · 1 bonus
Weight of each criterion in the score.
The message makes sense without its images, from the inbox on Partly met Preheader missing, too short or too long on the 2 campaigns concerned (1 of 2 measures met) 12.5/25 pts
12.5 points out of 25 — share of observations met across 2 campaigns.
How to fix it
A preheader of 40 to 130 characters, in real text, follows the subject in the inbox; every meaningful image has an alt attribute that says what it shows; the main message is in text, not inside an image. In the editor, the preheader is a dedicated field, and the alt is filled in image by image.
Half of readers see the message without images when it first opens. An alt and a preheader take a minute per campaign.
Met when the message keeps at least 200 readable characters with images blocked, and a preheader of 40 to 130 characters announces it in the message list. Without a preheader, the inbox shows the first text of the body instead — often “View in browser”.
What was measured — 1 met out of 2
- At least 200 characters remain readable with images blocked on 2 campaigns Met
- Preheader missing, too short or too long on the 2 campaigns concerned Not met
- Postmetry
- PM-EXP-001
The message can be rendered outside HTML Partly met The text version carries less than 80% of the links on the 2 campaigns concerned (2 of 3 measures met) 10/15 pts
10 points out of 15 — share of observations met across 2 campaigns.
How to fix it
The text version (text/plain) comes with the HTML and carries the content and the links, not just a sentence saying “open this message in your browser”. Email platforms generate it from the HTML when the option is on (“auto-generate plain text”).
This is the version that watches, screen readers and some business clients read; spam filters also use it, comparing the two versions.
Met when a text version comes with the email and carries the essentials: at least 60% of its text and 80% of its links. A client that does not display HTML falls back on it; reduced to “view the web version”, it renders nothing.
What was measured — 2 met out of 3
- A plain-text version accompanies the message on 2 campaigns Met
- The text version carries at least 60% of the text on 2 campaigns Met
- The text version carries less than 80% of the links on the 2 campaigns concerned Not met
- Postmetry
- PM-EXP-002
All links stay visible with images blocked Met All links stay visible with images blocked on 2 campaigns 15 pts
15 points out of 15 — met on 2 of 2 campaigns concerned.
Met when no link is carried by a single image without alternative text: such a link leaves nothing on screen. Not applicable if the message contains no links.
- Postmetry
- PM-EXP-003
Tap targets large enough Met Tap targets of sufficient size on 2 campaigns 10 pts
10 points out of 10 — met on 2 of 2 campaigns concerned.
Met when no sized tap target falls below 24 px a side (WCAG 2.2, criterion 2.5.8). Only targets with a declared dimension are measured; the criterion's exceptions — a target within a line of text, sufficient spacing — are not. Not applicable if the message declares no dimensions.
- WCAG 2.2 — 2.5.8
- PM-EXP-004
- WCAG 2.2 — Target Size (Minimum), success criterion 2.5.8, level AA
The message stays readable with assistive technology Partly met The message puts obstacles in the way of assistive technology — 1 of 4 measures met 5/20 pts
5 points out of 20 — share of observations met across 2 campaigns.
How to fix it
Four fixes, all in the template: declare the message language on the <html> tag (lang="en" for an email in English), describe each content image in its alt attribute, mark layout tables with role="presentation", and write links that say where they lead rather than “click here”.
The criterion detail shows which ones are missing from your emails; the others are already met.
A decorative image — divider, spacer — keeps an empty alt="": that is what keeps it silent, not an oversight.
Declared language, described content images, layout tables marked as such, link texts that say where they lead: what a screen reader needs to render the message. The detail says which of these measures is missing.
What was measured — 1 met out of 4
- Message language not declared on the 2 campaigns concerned Not met
- Some content images are not described on the 2 campaigns concerned Not met
- Layout tables announced as data tables on the 2 campaigns concerned Not met
- Every link says where it leads on 2 campaigns Met
The message declares its adaptation to screens Not met The message does not declare its adaptation to screens — none of the 2 measures is met 0/15 pts
0 points out of 15 — share of observations met across 2 campaigns.
How to fix it
The HTML has a <meta name="viewport" content="width=device-width"> tag and @media rules that adapt the width and the columns below 600 px; the fixed 600 px width only holds for desktop clients. Modern editors produce them; an old or hand-made template often lacks them.
Without these rules, the message shows at 600 px on a 390 px screen: zooming required, unreadable text, links too small.
Met when the message declares its viewport and its adaptation to screen width. Without them, it displays on a phone at its original width, and is read by zooming and scrolling sideways.
What was measured — 0 met out of 2
- Viewport not declared on the 2 campaigns concerned Not met
- No adaptation to screen width declared on the 2 campaigns concerned Not met
- W3C
- PM-EXP-026
- CSS Device Adaptation — the viewport tag
- Media Queries Level 4
Dark mode declared Bonus point not earned The message does not declare its support for dark mode on the 2 campaigns concerned +0 pts
0 points out of 5 — met on 0 of 2 campaigns concerned.
Earned when the message declares color-scheme or a prefers-color-scheme rule. No standard requires it — clients that force dark mode invert the colors themselves — but declaring it leaves control to the template rather than to the mail client.
- caniemail
- PM-EXP-027
Sector comparison
Beauty — 69 brands with at least one campaign analyzed. The shares below are counted on them, never on the catalog.
Reading notes
How to read this page
-
A criterion that is not observable or not applicable leaves the calculation. It stays listed, never counted as zero: its weight leaves the denominator rather than weighing as a failure.
-
Each line describes an observable finding, with the excerpt that establishes it. No legal qualification is ever attached to it.
-
The measurements come from deterministic analyzers: the same message always gives the same result, and a disputed finding can be redone identically from the archive.
-
Every share is published on an observed basis, and names it: “26 of 30 brands analyzed.” A brand with no email received enters no denominator.
-
The deliverability score is borrowed: its verdict comes from the server that received the message. All the other families come from our own analyzers.
Does this analysis speak to you?
Let's go through it together, in 20 minutes.
We go over the 10 points with you, the evidence for each and the order in which to fix them. By video call, no commitment.
Or take it with you: the PDF report