Publishing a BIMI record, and the certificate most senders do not need yet
A BIMI record is three lines of DNS and one very expensive prerequisite. What the record contains, why the SVG you already have will not work, the difference between a VMC and a CMC, and the reason most transactional senders should publish nothing at all for now.
A BIMI record is a TXT record at default._bimi naming an SVG Tiny P/S logo and usually a certificate. It does nothing until DMARC is at p=quarantine or p=reject with pct=100 on the organisational domain. Gmail ignores a self-asserted logo entirely and shows a check mark only for a VMC, which requires a registered trademark.
The record went in, the syntax checker went green, and 48 hours later the messages still arrive with a grey circle and a capital letter in it. Nothing is broken. BIMI is working exactly as specified, and what it specifies is that almost nothing happens until several other things are true.
Most of the writing about BIMI is about why you want the logo. This is about what the standard actually requires, in the order a receiver checks it, and about the one decision with real money attached.
What the record contains
BIMI is a TXT record on a selector, the same shape as DKIM. The default selector is default, and unless a sender stamps a BIMI-Selector header on its messages, that is the only one anybody looks up.
default._bimi.yourapp.com. TXT "v=BIMI1; l=https://assets.yourapp.com/logo.svg; a="
Two attributes carry everything. l= is the HTTPS URL of the logo. a= is the HTTPS URL of a PEM file holding a certificate that vouches for it. Either may be empty, and which one you leave empty decides what the record is worth:
dig +short TXT default._bimi.yourapp.com
A record with l= filled and a= empty is a self-asserted logo. You are stating that the logo is yours, and nothing beyond the record supports the claim. A record with a= populated points at a certificate an authority issued after checking. Google’s own documentation shows the certified form with l= blank, because the PEM file contains the logo as well as the certificate.
The prerequisite that stops most domains
Before a receiver fetches anything, it checks DMARC. BIMI applies only to messages that passed DMARC, and only for domains whose policy is at enforcement. The requirement is specific:
| Requirement | Passes | Fails |
|---|---|---|
| Policy | p=quarantine, p=reject | p=none |
| Percentage | pct=100, or omitted | any pct below 100 |
| Subdomain policy | inherited, or at enforcement | sp=none |
| Where it is published | the organisational domain | a subdomain alone |
That last row catches people who did everything else right. A policy on mail.yourapp.com is not a policy on yourapp.com, and BIMI reads the organisational domain.
If you are at p=none today, this is the whole project, and it is a good project regardless of whether a logo ever appears. Getting to enforcement means inventorying every system that sends as your domain and fixing the ones that fail alignment — which is the work described in reading DMARC aggregate reports. Nothing about BIMI shortens it. BIMI is what you may choose to do afterwards.
The SVG you have is not the SVG it wants
BIMI does not accept general SVG. It requires SVG Tiny Portable/Secure, a deliberately reduced profile designed so that a mailbox provider can render a stranger’s image without executing anything.
<svg xmlns="http://www.w3.org/2000/svg"
version="1.2" baseProfile="tiny-ps"
width="96" height="96" viewBox="0 0 96 96">
<title>Your Company</title>
<desc>Company logo</desc>
…
</svg>
What gets a file rejected:
| Rule | Why |
|---|---|
baseProfile="tiny-ps" and version="1.2" required | The profile declaration is how a validator knows what it is reading |
| No scripts | The file is rendered in a mail client, by definition untrusted |
| No animation or interactivity | Same reason |
| No external references | Everything must be self-contained, apart from the XML namespaces |
No x= or y= on the root element | Position is the client’s decision, not the image’s |
| Absolute pixel dimensions, at least 96 by 96 | A Gmail addition. width="100%" is rejected |
Gmail also recommends a square logo on a solid background, a file of 32 KB or less, and a <desc> element for accessibility. Transparent backgrounds may not render as you expect. The host serving the file must use HTTPS with TLS 1.2 or later, and must resolve publicly — a file behind an allowlist is a file the receiver cannot fetch.
Exporting from a design tool will not produce this. Converting an existing logo is a manual pass over the XML, and the design department’s file usually needs simplifying before it conforms.
VMC and CMC, and what each one buys
This is the decision with a cost attached.
| Verified Mark Certificate | Common Mark Certificate | |
|---|---|---|
| Requires a registered trademark | Yes, in a recognised jurisdiction | No |
| Basis of verification | The trademark registration | Evidence of prior use of the mark |
| Logo displays in Gmail | Yes | Yes |
| Check mark beside the sender | Yes | No |
| Issued by | A small number of certificate authorities | The same authorities, where offered |
Both are annual certificates, priced accordingly, and both are bought from a certificate authority rather than configured. The VMC’s real cost is upstream of the certificate: you need the logo registered as a trademark first, and Google’s own guidance puts that process at six to twelve months, before anybody’s legal fees.
The CMC exists precisely because that requirement excluded almost everyone. It is the route for an organisation whose logo is real and in use but never registered — which describes most software companies under a certain size.
What each mailbox provider actually does
The standard is one thing and deployment is another, and this is where a self-asserted record either works or does nothing at all.
Yahoo and AOL accept a self-asserted record: publish the SVG, leave a= empty, and a qualifying message can display the logo. Gmail does not. Gmail requires the PEM file, so a self-asserted record produces exactly the grey circle you started with, and the check mark beside the sender name appears only for a VMC — not for a CMC, and not for a self-asserted logo.
So “does BIMI work without a certificate” has two correct answers depending on where your recipients read their mail, and for most transactional senders the answer that matters is the Gmail one.
Why most transactional senders should wait
Work backwards from what a logo does. It is a recognition signal for a brand a recipient already knows, in an inbox where several messages from you sit together. That describes a retailer’s mail. It does not describe a password reset, which arrives once, is opened within ninety seconds because the person just asked for it, and is deleted.
There is also a sequencing argument. Everything BIMI requires before the logo — SPF, DKIM, DMARC at enforcement, alignment on every sending system — is doing the entire job of getting mail delivered. The logo does not add to delivery. Receivers do not treat a BIMI record as a positive reputation signal, and nothing in the standard asks them to.
So the honest order is: reach p=reject because it protects the domain and it is what the Gmail and Yahoo sender requirements already expect. Then, if you send enough recognisable mail to enough consumers that a logo would be recognised, look at a certificate. If you send password resets and receipts, publish nothing yet and spend the certificate budget somewhere it changes an outcome.
The exception is worth naming: if your brand is impersonated in phishing aimed at your own customers, a verified logo is a genuine countermeasure, because its absence becomes a signal too. That is a real reason, and it has nothing to do with open rates.
Where Pharos fits
Pharos verifies four DNS records on every sending domain before the first message leaves — SPF, DKIM, DMARC and an aligned return path — and re-checks them daily, which is the groundwork BIMI sits on top of and the part that actually decides whether mail arrives. Pharos does not issue certificates and does not host logo files; BIMI is a record you publish on your own domain, at your own registrar, whoever sends your mail. If you reach DMARC enforcement and decide the logo is worth the certificate, nothing about sending through Pharos stands in the way.
Questions this raises
Do I need a VMC for BIMI to work?
It depends which mailbox provider you care about. Yahoo and AOL accept a self-asserted record, where the logo is named but no certificate is attached. Gmail does not: it requires a PEM file holding a VMC or a CMC, and shows the verification check mark only for a VMC. A record with no certificate is valid, free, and invisible in Gmail.
What is the difference between a VMC and a CMC?
A Verified Mark Certificate requires a logo registered as a trademark with a recognised intellectual property office. A Common Mark Certificate is the route for a logo that is not trademarked, and relies on evidence of prior use instead. Both let the logo display in Gmail; only the VMC earns the check mark beside the sender name.
Why is my BIMI logo not showing after 48 hours?
Check DMARC first, because it is the most common cause: the policy must be quarantine or reject with pct=100, and a subdomain policy of sp=none disqualifies the domain. After that, check that the SVG declares baseProfile="tiny-ps" and version="1.2", carries absolute pixel dimensions, and is served over HTTPS from a host that resolves publicly.
Sources
- Brand Indicators for Message Identification (BIMI) — IETF draft, section 4.2: the assertion record — The record syntax, the l= and a= attributes, and the default selector.
- SVG Tiny Portable/Secure — IETF draft — The image profile a BIMI logo has to conform to, and what it forbids.
- Fetch and Validation of Verified Mark Certificates — IETF draft — How a receiver retrieves and checks the certificate, including the transport requirements.
- Google Workspace Admin Help — Set up BIMI — Gmail's own requirements: DMARC values, the SVG additions, and PEM-only support.
- RFC 7489 — Domain-based Message Authentication, Reporting, and Conformance (DMARC)
Know when the rules change.
Gmail, Yahoo and Microsoft change what they require from senders. Pharos changes too — a capability, a limit, a price, something retired. Both change what you have to do to keep sending, so this list sends one email when either happens.
check your email
Confirm from the email we just sent, and you're on the list.