Four DNS records, and a domain that receivers trust.
SPF says which servers may send for your domain, DKIM signs each message so it cannot be altered, and DMARC tells receivers what to do when the first two fail. Setting them up is four records in your DNS provider, or one click where your provider supports Domain Connect. This page shows the records exactly as the Notix dashboard asks for them, what each one proves, and the handful of mistakes that keep a domain unverified.
What each record proves.
SPF is a TXT record that lists the servers allowed to send mail whose return path is your domain. A receiver reads the return-path domain from the envelope, fetches its SPF record and checks that the connecting server is on the list. It proves the message came from somewhere you authorised; it says nothing about whether the content is intact. The record has a hard limit of ten DNS lookups, which is easy to exceed once several services are included. The SPF page covers the syntax, the lookup limit and how to stay under it.
DKIM is a signature. The sending service signs selected headers and the body with a private key and adds the signature as a header; the matching public key is published in DNS at selector._domainkey.yourdomain. A receiver fetches the key named by the selector and checks the signature, which proves the message was not altered in transit and was signed by someone holding your key. Each service that sends for you gets its own selector, so keys never collide. The DKIM page explains selectors, key rotation and what a failed signature looks like.
DMARC ties the two together. It is a TXT record at _dmarc.yourdomain that tells receivers what to do when a message fails both SPF and DKIM, or passes one without the passing identity matching the visible from domain, which is called alignment. The policy is none (deliver and report), quarantine (spam folder) or reject. It also names an address for aggregate reports, which is how you find out what is sending as you. The DMARC page has example records for each policy and how to read the reports.
What the Notix dashboard asks you to add.
When you add example.com as a sending domain, the domain page lists these four records with your own key and region filled in, and shows each name both relative to the zone and in full. Add the first three; the fourth is recommended.
| Type | Host | Value | What it proves |
|---|---|---|---|
| TXT | notix._domainkey.example.com | p=<the public key the dashboard shows> | DKIM. Receivers fetch this key at the selector and check the signature on each message. |
| TXT | mail.example.com | v=spf1 include:amazonses.com ~all | SPF for the mail-from subdomain. Lists the servers allowed to send with that return path. |
| MX | mail.example.com | 10 feedback-smtp.<region>.amazonses.com | Bounce routing for the mail-from subdomain, so failures come back to the sending stack rather than to nowhere. |
| TXT | _dmarc.example.com | v=DMARC1; p=none; | DMARC. Recommended, not required for verification. Tells receivers what to do when SPF and DKIM both fail, and where to send reports. |
Three details are worth knowing. The SPF record and the MX sit on mail.example.com, not on the root, because Notix sets the return path of every message to that subdomain: your root domain’s SPF record stays untouched, and the subdomain aligns with your domain for DMARC. The DKIM selector is notix unless the domain was created with another one, so the key lives at notix._domainkey and never overwrites a key another service publishes. And the include in the SPF record names the transport Notix delivers through; as with any service built on a sending engine, that is the layer publishing its engine’s servers as authorised for your return path, and it is the whole of what you need to know about it to set the record. If you added the domain under a subdomain, say app.example.com, the same records appear with .app in the host, and the DMARC record stays at the root.
The one-click path: Domain Connect.
Domain Connect is an open protocol between services that need DNS records and the providers that host DNS. A provider that supports it publishes a _domainconnect TXT record on each zone and keeps a catalogue of service templates; a service that supports it hands the provider a signed link, the provider shows you the records it is about to write, and you approve them in one click.
Notix does the discovery when you add a domain. It walks up from the domain to the zone that holds it, looks for the _domainconnect record, asks the provider whether the Notix template is available there, and if it is, the domain page offers a “Set up automatically at” button naming your provider, beside the records table. The link is signed and expires after fifteen minutes; it opens your provider’s confirmation screen and brings you back to Notix once the records are written. Verification then runs as it would for records you typed. If the zone has no _domainconnect record, or the provider has not synced the template, the page shows the manual records and says nothing about Domain Connect; there is no degraded half-automatic mode.
Verification, and how long it takes.
Notix checks the DKIM key, the mail-from records and, for the dashboard’s recommendation, the DMARC record. A domain that has never verified is rechecked every six hours, and the domain page’s “Verify domain” button runs a check on demand; once verified it is rechecked every thirty days so a record deleted in a DNS tidy-up is noticed. You get an email when the status changes to verified. Records that were not there before usually resolve within minutes of your provider publishing them; a record you corrected can take as long as its previous TTL to clear from resolvers that cached the old value.
The quickest check is to ask DNS yourself, from a machine that is not your provider’s own resolver:
# Replace example.com with your domain. Each should return the value from the table.
dig +short TXT notix._domainkey.example.com
dig +short TXT mail.example.com
dig +short MX mail.example.com
dig +short TXT _dmarc.example.com
If the values come back and the dashboard still shows the record pending, wait for the next automatic check or trigger one. If a value comes back empty or different, the record is on the wrong host or the value was mangled on the way in; the mistakes below account for nearly every case.
The five mistakes behind most pending domains.
The record is on the wrong host.
Most registrar forms want the name relative to the zone: notix._domainkey, not notix._domainkey.example.com. Some want the full name. Type the full name into a relative field and you get notix._domainkey.example.com.example.com, which nobody will ever query. The dashboard shows both forms for every record; use the one your provider's form expects.
A second SPF record.
A host may carry exactly one SPF record. Two v=spf1 records on the same name is a permanent error, and receivers treat it as no SPF at all. Notix puts its SPF on the mail subdomain, so it does not collide with the record on your root domain; if you ever move sending to the root, merge the include into the existing record rather than adding a new one.
Quotes and line breaks in the value.
Paste the value without surrounding quotes unless your provider's form says it adds none. A DKIM public key is long; some forms wrap it and silently drop characters at the wrap. If the DKIM check stays pending after an hour, compare what dig returns against the dashboard character by character.
Waiting on the TTL.
A record you edited replaces one that resolvers may have cached for as long as its old TTL. A fresh record with no previous value propagates as soon as your provider publishes it, which is usually within minutes; a corrected one can take the old TTL to clear. Auto or 3600 is fine; nothing here needs a lower TTL.
A DMARC policy tightened too early.
p=reject on a domain that also sends from a CRM, a helpdesk and a founder's laptop mail client throws away everything that is not aligned. Start at p=none, read the aggregate reports for a couple of weeks, bring every legitimate source into alignment, then move to quarantine and finally reject.
Check your setup.
The domain page in the dashboard shows a status per record: not started, pending or verified for DKIM and the mail-from pair, and added or missing for DMARC. A domain sends only once DKIM and the mail-from records are verified; until then the transactional email API refuses a from address on that domain, and the pre-send deliverability check reports domain_unverified as a blocking finding and dmarc_missing as a warning. Once everything is green, the records need no further attention unless you rotate keys, change providers or tighten the DMARC policy, and deliverability becomes a question of what you send and to whom, rather than whether receivers can tell it is you.
Questions, answered.
Do I need all three of SPF, DKIM and DMARC to send?
What is a DKIM selector, and why is it "notix"?
Why is the SPF record on mail.example.com and not on example.com?
What does the include:amazonses.com in the SPF record mean?
How long does verification take?
What is Domain Connect, and does my provider support it?
Keep reading.
SPF records for transactional email
What an SPF record says, the include for a sending service, the ten-lookup limit and how to stay under it.
LearnDKIM selectors and keys
How a DKIM signature is checked, what the selector in the DNS name is for, and why each sending service gets its own.
LearnDMARC record examples
Records for p=none, quarantine and reject, what alignment means, and how to read the aggregate reports before tightening.
LearnEmail deliverability and sender reputation
What mailbox providers score, the complaint threshold that matters, warming a new domain, and the honest position on shared IPs.
ProductTransactional email API
OTPs, receipts and alerts with idempotency keys, a deliverability pre-check and a shared suppression list.
NotixDocs
The quickstart: verify a domain, copy an API key, send the first email.
Add a domain and see the records for yourself.
Four records, verification within minutes of them resolving, and Domain Connect where your provider supports it.