Some website faults are obvious at a glance: a broken image, a dead link, a page that falls apart on a phone. The most expensive fault is a different one – it stays invisible. The notification from the contact form lands in the spam folder. The quote sent to a customer is quietly filtered out by their mailbox provider. Nothing seems to happen on either side: the sender pressed send, the recipient received nothing, and the enquiry counts as one that was not made. In most cases the cause sits in the same place – in three DNS records belonging to your domain that are missing or wrong. They are called SPF, DKIM and DMARC, they have been described as open standards for years, and the German Federal Office for Information Security has set a verifiable framework for them with Technical Guideline TR-03182, version 1.0 of 15 February 2024 (BSI). This article explains the three building blocks in plain language, shows the five mistakes that regularly occur on low-budget websites, and provides a self-test you can run in a quarter of an hour.
Key takeaways
- SPF, DKIM and DMARC are not products but three DNS records: a list of authorised sending servers (IETF RFC 7208), a cryptographic seal attached to the message (IETF RFC 6376) and a rule for what should happen when nothing matches (IETF RFC 9989).
- For a DMARC pass it is enough that one of the two proofs succeeds and aligns with the visible sender domain – using both mechanisms is still the explicit recommendation (IETF RFC 9989).
- SPF comes with hard limits: at most 10 DNS lookups per evaluation, at most 2 void lookups and exactly one SPF record per domain (IETF RFC 7208).
- Moving from p=none through p=quarantine to p=reject is a stepwise process built on report analysis, not a single switch (IETF RFC 9989).
- A domain that sends no mail at all also needs protective records so its name cannot be used for phishing (M3AAWG, IETF RFC 7505).
When the enquiry does not arrive at all
For a small business the contact form is often the most important sales channel on the website. It replaces the phone call, it arrives outside opening hours, and it delivers the enquiry in writing – there is a reason the contact page is one of the five most important pages of a website. That is exactly why it weighs so heavily when the message fails to reach the mailbox. The business waits for enquiries that were made long ago. The prospective customer waits for an answer that cannot come. And because no error message appears on either side, nobody goes looking for the cause.
The technical reason is simple: receiving systems now check whether a message really comes from the domain shown in the sender address. If that check fails, or if it is missing entirely, the mail ends up in the spam folder or is refused during the delivery attempt. The German Federal Office for Information Security translated this expectation into verifiable requirements for email service providers in Technical Guideline TR-03182 on email authentication, published as version 1.0 on 15 February 2024 (BSI). Its stated goal is to make authentic email communication more comparable and more widespread (BSI).
The direction of travel is clear, and it is getting stricter. In May 2026 the original DMARC specification from 2015 was replaced by three new documents on the standards track (IETF RFC 9989) – what used to be an informational proposal is now a proposed internet standard. Anyone sending in the name of a domain without being able to prove it has a hard time with the large mailbox providers. For a medical practice, a law firm or a trades business this means deliverability is not a side issue of IT but part of being reachable.
Why you do not notice the problem
SPF, DKIM and DMARC: three building blocks, one job
The three acronyms sound like specialist knowledge, but they describe a very everyday kind of order. Picture your domain as your company letterhead. SPF is the list of mail rooms allowed to use that letterhead. DKIM is the seal on the envelope, showing that the letter was not opened and altered on the way. And DMARC is the house rule: it defines what the recipient should do when letterhead and seal do not match – and it makes sure you get feedback about it.
SPF – the authorisation list
A DNS record names the servers allowed to send on behalf of the domain. The receiving server compares the sending IP address against that list. The mechanism has been on the standards track since April 2014 (IETF RFC 7208).
DKIM – the seal
The sending server signs the message with a private key; the matching public key sits in DNS. This proves that header and content were not altered in transit (IETF RFC 6376, Internet Standard STD 76).
DMARC – the house rule
DMARC ties both checks to the visible sender address and defines how deviations are handled: observe, set aside or refuse (IETF RFC 9989).
The interplay is what matters. For a positive DMARC result it is sufficient that one of the two proofs passes and aligns with the sender domain; using both mechanisms as the underlying basis is nevertheless the explicit recommendation (IETF RFC 9989). M3AAWG, the international group of messaging providers working against abuse, likewise treats SPF, DKIM, DMARC and the complementary ARC as a package in its email authentication recommendations from September 2020 (M3AAWG) – on its own, no single block develops its full effect.
SPF: who may send in the name of the domain?
SPF stands for Sender Policy Framework. In your domain's DNS there is a text record starting with v=spf1 that lists which servers are allowed to send – by IP address, by referencing other records, or via the servers named in the MX record. At the end comes the statement about how everything else should be treated. The receiving server looks up this record and compares it with the address the connection actually comes from.
Two rules from the specification are the most common stumbling blocks. First, a domain must not have more than one SPF record; with two the result is no longer unambiguous and the check fails (IETF RFC 7208). Second, there is a lookup budget: at most 10 DNS lookups may be triggered during an evaluation, and the number of void lookups should be limited to 2 (IETF RFC 7208). Every reference to another service consumes at least one of those lookups. Anyone who adds host, newsletter tool, booking system and invoicing software one after another exhausts the budget faster than expected – and after that the check fails for every message, including the ones from the contact form.
- Several SPF records side by side: when changing provider a second record is created instead of extending the existing one. Together they produce an invalid result (IETF RFC 7208).
- Too many references: every embedded service costs lookups from the budget of 10 (IETF RFC 7208). Records for services no longer in use should be removed consistently.
- A soft instead of a hard ending: a record ending in
~allmerely describes unauthorised servers as probably not authorised;-allis the clear statement that they are not authorised (IETF RFC 7208). - Forgotten senders: servers that send in the background – the form on the web server or an invoicing routine – do not appear in the record and therefore fail.
- Forwarding: when a message is forwarded from a third-party mailbox, a different server suddenly sends it. SPF then fails even though everything is correct – one more reason to use DKIM as well.
What `-all` and `~all` mean
-all is the explicit statement that such a server is not authorised. ~all is the weaker statement that it is probably not authorised (IETF RFC 7208). The soft variant is useful during the introduction phase; in the long run the hard variant is the more meaningful one – provided your list of legitimate senders is complete.DKIM: the seal that keeps the message intact
DKIM stands for DomainKeys Identified Mail. When sending, the server calculates a signature over the message header and the content and adds it as an extra header line. The corresponding public key sits in DNS under a so-called selector, a short name belonging to the sending system. The recipient reads the key from DNS and verifies the signature with it. If it matches, this proves that the message was signed by a system holding that domain's private key and that it was not altered on the way. The procedure has been described as Internet Standard STD 76 since September 2011 (IETF RFC 6376).
Here too there are numbers that count. Since January 2018 the use of SHA-1 for DKIM has been ruled out; keys must be at least 1024 bits long, with at least 2048 bits recommended (IETF RFC 8301). In addition, a more modern signature method based on Ed25519 has been described since 2018 (IETF RFC 8463). For a small business this means in practice: the key is generated when the mailbox is set up, the public part goes into DNS, and both parts need checking whenever anything moves. A DKIM record still pointing at the previous provider is worthless – the new server signs with a different key.
Why DKIM survives forwarding
DMARC: the house rule that reports back
SPF and DKIM each verify one technical relationship, but not what the recipient actually sees: the sender address in the message header. DMARC closes exactly that gap. The record sits in DNS under the name _dmarc in front of your domain and requires at least one of the two checks to pass and to match the visible sender domain. This match is called alignment; by default it is evaluated in relaxed mode, so subdomains of the same organisational domain fit together (IETF RFC 9989). Only then comes the actual decision: what should happen when nothing matches?
| Rule | Meaning | Sensible when |
|---|---|---|
| p=none | The domain owner offers no preference for handling; messages are delivered as before (IETF RFC 9989) | You are starting out and first want reports to show who sends in your name |
| p=quarantine | The message is treated as suspicious and handled separately, typically in the spam folder (IETF RFC 9989) | Reports show a stable picture over several weeks and all of your own senders are covered |
| p=reject | The domain owner views the failure as a clear sign of unauthorised use; the message is refused (IETF RFC 9989) | Every legitimate sending path passes the check and misuse of your name should be stopped effectively |
The second, often overlooked part of DMARC is the feedback. Via an address in the record you receive aggregate reports showing, per sending source, how many messages were processed with which outcome – including SPF and DKIM results, alignment and the disposition actually applied (IETF RFC 9990). In addition there are failure reports about individual messages (IETF RFC 9991). These reports are the one reliable way to notice that part of your mail is getting lost before customers start complaining.
DMARC grew up in 2026
From none through quarantine to reject
The road to the strict rule is deliberately a road and not a switch. Anyone jumping straight to refusal risks losing exactly those messages that should arrive – for instance the automatic dispatch from a booking system or a newsletter that has not been authorised yet. The specification therefore explicitly recommends starting in monitoring mode, evaluating the reports and only then tightening step by step (IETF RFC 9989).
- Take stock: collect every system that sends in the name of the domain – website and form, mailboxes, invoicing, appointment confirmations, newsletters.
- Build the basis: publish a single, complete SPF record and set up DKIM for each sending system, each with its own selector.
- Observe: publish DMARC with
p=noneand a reporting address. Aggregate reports show per source what passes and what fails (IETF RFC 9990). - Close the gaps: evaluate the reports over several weeks, clarify unknown sources, add forgotten senders and slim down the SPF record.
- Tighten: move to
p=quarantinefirst and, after another stable phase, top=reject– and keep reading the reports afterwards.
Setting the rule takes a minute. The value is created in the weeks before, when you read the reports and learn who is out there sending in the name of your own domain.
Five mistakes that regularly cost small websites their mail
Working on existing websites, the same patterns keep appearing. They have nothing to do with carelessness and everything to do with the fact that website, mailbox and DNS often come from different sources and nobody looks at the chain as a whole.
- The form sends using the visitor's address. The website dispatches the notification with the address that was typed in as the sender. Technically your server is claiming to send on behalf of a foreign domain – for that domain's DMARC rule this is misuse, and the message is refused.
- Two SPF records or too many references. One record is required, two are invalid, and more than 10 DNS lookups blow the budget of the evaluation (IETF RFC 7208).
- After the move the keys are missing. After a change of host or mailbox the new server signs with a new key, yet the DKIM record in DNS still points at the old one. A frequent side effect of a website relaunch that is completed without checking delivery.
- Additional systems send without authorisation. Newsletter, invoicing or booking systems send under your domain but are neither named in the SPF record nor set up with DKIM. Anyone using online appointment booking on the website should authorise that sending path explicitly.
- Nobody reads the reports. Without evaluating the aggregate reports it stays unnoticed for months that part of the mail is disappearing – and out of caution the rule remains stuck at
p=none.
The first point is the most important and at the same time the easiest to fix. A contact form should send the notification from an address on your own domain, for example form@yourcompany.com, and put the visitor's address into the Reply-To field. The message then passes every check, and replying still goes to the enquirer with one click. This is not a comfort detail but the difference between an enquiry in the inbox and an enquiry that does not make it into the mailbox at all. How form data should be handled in a privacy-compliant way is covered in our article on the GDPR basics for small websites.
Especially delicate with confidential mail
Self-test in four steps
You do not need specialist software to get a first impression. Four steps are enough, and they can be done in a morning. The only thing that matters is testing from the perspective of an external recipient – inside your own house delivery looks fine almost everywhere.
- Test mail to an external mailbox: send a message from your business address to a mailbox at a large provider that has nothing to do with your domain. Check the spam folder first, not just the inbox.
- Look at the headers: in that mailbox, open the original view of the message. A line with the authentication results shows whether SPF, DKIM and DMARC passed. Three times
passis the goal. - Query the DNS records: display the text records of your domain and the record under
_dmarc. Look for exactly one SPF record, a valid DKIM selector and a DMARC rule with a reporting address. - Document form delivery: send a real enquiry through your contact form and note the time, recipient address and outcome. Repeat it with a sender address at a different provider – that makes mistake number one obvious straight away.
One look at the message header beats any guess
dmarc=fail, the rest of the line helps further: it shows whether SPF, DKIM or the alignment was the problem. Note the result before you change anything in the records – otherwise you cannot tell afterwards which change had the effect.Checklist: what a clean setup covers
For a small business the effort is manageable. The following list describes what should be in place after setup – regardless of who looks after the website.
- Exactly one SPF record covering every system that actually sends, staying within the lookup budget of 10 (IETF RFC 7208).
- DKIM for every sending system, with its own selector and a key of at least 2048 bits as the recommendation (IETF RFC 8301).
- A DMARC record under
_dmarcwith a reporting address, starting withp=none(IETF RFC 9989). - A mailbox or distribution list where the aggregate reports actually arrive and are looked at regularly.
- A contact form that sends from an address on your own domain and puts the visitor's address into
Reply-To. - All automated sending paths captured: appointment confirmations, invoices, order confirmations, form notifications.
- A defined point in time for tightening to
p=quarantineand later top=reject. - Short documentation of which record serves which purpose – so nothing is lost during the next move.
- Protective records for every domain that sends no mail, so its name cannot be used for phishing (M3AAWG).
- A follow-up date after going live, when delivery is checked again from an external mailbox.
Domains without mail need a rule as well
For clarity: this article is exclusively about deliverability and the technical records behind it – not about choosing your preferred address or the legal duties attached to the domain itself. Which address suits your business and why an own domain shapes the first impression is covered in the article on your own domain and a business email address. If you are also interested in the duties around registrant data, you will find that context in the piece on the obligations attached to .de domains and registrant data.
What is included in our scope of work
With us, domain, mailbox, DNS records and the technically correct dispatch from the form are not an extra item but part of the build. We set up SPF, DKIM and DMARC, make sure the contact form sends from your own domain with the reply address set correctly, and check delivery from an external mailbox after going live. What is included can be seen in our overview of services; prices are stated openly with the fixed-price packages. The starter website from 390 euros at a fixed price also covers the complete setup of domain and mailbox.
After that, deliverability remains an ongoing topic, because providers change, systems are added and keys get replaced. If you put website maintenance and hosting in our hands, the evaluation of DMARC reports comes as a fixed part of it: we look into them regularly, get in touch about conspicuous sources and accompany the step from observation to the strict rule. Why ongoing care is more than an update button is described in the article on why website maintenance matters. Answers to further questions about the build and day-to-day operation are collected in our frequently asked questions.
Deliverability check for your existing site
Sources and studies