Email security
Can someone send email as your business? What SPF, DKIM and DMARC decide
If your domain has no DMARC record, or one set to p=none, anybody can send email that shows your address as the sender. Receiving mail servers have nothing from you telling them to stop it.
By Oscar CobbeCurrent as at 23 minute read23 sources
The short answer
Yes. DMARC is a record on your domain that can tell other mail servers what to do with mail that forges your address. Set to quarantine or reject, it asks them to junk or refuse that mail. Without it, they have nothing from you to act on. Receivers do not have to follow it. And no DMARC setting stops lookalike domains, or mail sent from a mailbox somebody has broken into. Those are covered at the end.
Email was not built to check who sent a message. Microsoft's documentation says that SMTP, the protocol mail travels on, makes no effort to check that the sender is who they claim to be. Its worked example is a message whose From line shows a bank's address, while the hidden sender address it travels under (the envelope) carries an unrelated domain.
Three records in your domain's settings (its DNS) decide whether a receiving mail server can tell your mail from a forgery: SPF, DKIM and DMARC. Only DMARC tells the receiver what you want done with a forgery, and only a policy of quarantine or reject asks it to do anything.
None of the laws read for this guide names any of the three. GDPR Article 32 requires security of personal data appropriate to the risk and names no email control. Ireland's National Cyber Security Centre (NCSC) recommends all three records. Gmail, Yahoo and Outlook.com require them from bulk senders before they will deliver to their users. The one legal text read that deals with email security directly covers cloud, DNS and managed service providers under NIS2. It is described below.
Your DMARC protects anybody whose mail system acts on it: the customer who receives an invoice that appears to come from you, and your own staff when a forgery of your managing director's address arrives from outside and your own mail system honours the policy.
What SPF, DKIM and DMARC each do
Each answers a different question. A forged message can pass the first two.
The missing piece is called alignment. SPF checks the envelope sender, an address used between mail servers that the reader never sees. DKIM checks whichever domain signed the message. Neither has to match the From address the reader sees. Microsoft's documentation describes the forgery this allows: register a domain, set up SPF and DKIM for it, and send mail with somebody else's domain in the From line. Both checks pass, for the wrong domain.
DMARC closes the gap. A message passes DMARC only where SPF or DKIM passed for a domain aligned with the From address. Aligned means the same domain or, under the default relaxed setting, one with the same main domain (organisational domain). That is how invoices.yourdomain.ie aligns with yourdomain.ie. A message passes if either check passes aligned, and fails only if both fail. DMARC also lets the domain owner say what should happen to a message that fails, and ask receivers for reports.
The DMARC standard itself changed this year. It was first published as RFC 7489, an informational document. In May 2026 the Internet Engineering Task Force replaced it with RFC 9989, a formal standard (standards track), with aggregate reports defined in RFC 9990 and failure reports in RFC 9991. The tags at the core of a record (v=DMARC1, p, sp, rua, adkim and aspf) are all still in it. Three changes affect a small business, and they are in the table of tags below. The pct tag is gone. A test flag, t, replaces part of what it did. And an np tag, for subdomains that do not exist, is now part of the standard; it was first defined in an experimental RFC of 2021.
| Record | Where it is published | What a pass shows | What it does not show |
|---|---|---|---|
| SPF (RFC 7208) | A TXT record on the domain itself, starting v=spf1 | The server that delivered the message is on the list of servers allowed to send for the envelope sender's domain | Anything about the From address the reader sees |
| DKIM (RFC 6376) | A public key at a selector name under _domainkey, for example selector1._domainkey.yourdomain.ie | The message was signed by the domain named in the signature, and the signed parts were not changed on the way | That the signing domain is the domain in the From address |
| DMARC (RFC 9989) | A TXT record at _dmarc.yourdomain.ie | SPF or DKIM passed for a domain aligned with the From address | Anything about lookalike domains, display names, or mail sent from your real mailbox by somebody who has its password |
p=none asks receivers to do nothing
The p tag is the policy, and it has three values. RFC 9989 defines them by what the domain owner tells receivers about mail that fails: none means the owner states no preference; quarantine means the owner considers such mail suspicious; reject means the owner considers the failure a clear indication that use of the domain is not valid.
What a receiver then does is its own decision, and RFC 9989 says it can choose to honour the policy but is not required to. Microsoft documents what Microsoft 365 does with incoming mail when its setting to honour the sender's DMARC policy is on. At p=none, it takes no DMARC-specific action, and other filtering still applies. At p=quarantine, the message goes to the Junk Email folder. At p=reject, it is refused during delivery.
At p=none a forged message carrying your address gets no DMARC treatment and is judged on whatever other filtering the receiver runs. The point of p=none is the reports. RFC 9989 calls it monitoring mode: the policy is none, and the domain owner receives summary reports (aggregate reports) and uses them to fix its own mail before asking receivers to act.
A p=none record with no report address (rua) gets no reports either: RFC 9989 says receivers must not send aggregate reports when the rua tag is absent. That record asks for nothing and receives nothing. A record with no valid p tag is treated as p=none if it names a rua address, and ignored altogether if it does not.
p=none is a setting for reading reports, not for protection
A DMARC record at p=none tells every receiver you have no preference about mail that fails. It meets the DMARC part of the bulk-sender rules of Gmail, Yahoo and Outlook.com, all of which accept p=none, and it stops no forgery. Protection starts at p=quarantine, which RFC 9989 already counts as enforcement.
The tags in a DMARC record, and what to set
A DMARC record is one line of tags separated by semicolons, published as a TXT record at _dmarc in front of your domain name. Publish exactly one: Microsoft's DMARC guide says to make sure only one _dmarc TXT record exists.
Microsoft's and Google's setup guides both still suggest pct for a gradual move, starting with a small percentage of failing mail and raising it. RFC 9989 removed pct, because experience showed it was usually not applied accurately unless the value was 0 or 100. The new standard also says unknown tags must be ignored. Make the move in whole policy steps, from none to quarantine and, if you go on, to reject.
| Tag | What it does | What to set |
|---|---|---|
| v=DMARC1 | Marks the record as DMARC. It has to come first | Exactly that |
| p | The policy for the domain, and for its subdomains unless sp or np says otherwise | none while you read the reports, then quarantine. Reject only once DKIM signs all your mail; RFC 9989 advises against it where users might post to mailing lists |
| rua | Where receivers send aggregate reports. With no rua, they send none | Always set. A mailbox kept for the reports, or a reporting service |
| sp | The policy for every existing subdomain at once | Leave it out, so p applies. To give one subdomain a gentler setting while its sender is fixed, publish a separate DMARC record at _dmarc on that subdomain |
| np | The policy for subdomains that do not exist. Added to the standard by RFC 9989, from the experimental RFC 9091 | Leave it out, so sp or p applies |
| adkim, aspf | Strict or relaxed alignment for DKIM and SPF. Relaxed is the default | Leave at the default. Google warns that strict alignment can get mail from subdomains rejected or sent to spam |
| ruf | Where per-message failure reports go | Optional. Microsoft 365 does not send them |
| pct | The share of failing mail the policy applied to | Removed in RFC 9989. Do not rely on it |
| t | New in RFC 9989: t=y asks receivers to apply the policy one level below the one published, while you test | Leave it out. A receiver working to the older RFC 7489 ignores tags it does not know, and would apply the published policy in full |
Why it matters now
Google's sender guidelines have applied since 1 February 2024 to anybody sending to personal Gmail accounts. Every sender has to set up SPF or DKIM. A sender of 5,000 or more messages a day to Gmail accounts needs all three: SPF, DKIM and DMARC. Its From domain must be aligned with SPF or DKIM, and marketing mail needs one-click unsubscribe. Google says the DMARC policy can be set to none. Unauthenticated messages might be marked as spam or rejected.
Google counts messages from the same primary domain together, subdomains included. A sender that meets the bulk criteria once is treated as a bulk sender permanently. A business sending well under 5,000 messages a day to personal Gmail accounts is not a bulk sender. Only the requirements for all senders apply to it, and the authentication requirement among them is SPF or DKIM, not DMARC. Google's guidelines do not apply to mail sent to Google Workspace accounts at all. Since November 2025 Gmail has been enforcing the requirements more strictly. Messages that fail them can run into problems, including being rejected temporarily or permanently.
Yahoo set rules of the same shape from February 2024: SPF or DKIM for every sender, and for bulk senders SPF and DKIM both, a DMARC policy of at least p=none that passes, alignment, and one-click unsubscribe. Yahoo's page gives no volume figure for bulk.
Microsoft announced on 2 April 2025 that, from 5 May 2025, domains sending more than 5,000 messages a day to Outlook.com consumer addresses (outlook.com, hotmail.com and live.com) must pass SPF and DKIM and publish DMARC at p=none or stronger, aligned with SPF or DKIM. The announcement's update says failing messages are rejected with the error 550 5.7.515. A paragraph lower down in the same post still says they go to Junk first.
These are the providers' conditions for reaching their own users. All three accept p=none, which means meeting them does not, on its own, ask anybody to stop a forgery.
In Ireland, the NCSC has guidance on business email compromise and payment fraud, dated 25 July 2025. It tells organisations to set up and monitor SPF, DKIM and DMARC on their domains. It gives them as a defence at the stage of an attack where criminals pretend to be somebody trusted, using broken-into accounts, forged (spoofed) addresses or lookalike domains they have registered. It links this control to the CyberFundamentals framework, which it recommends (control PR.PT-4). Its Irish examples include a local authority that paid over €500,000 in 2023 on a fake invoice from a forged supplier email address, and it puts SME losses to invoice redirect fraud in 2023 at almost €10m. The payment side is in the invoice redirection guide, and the framework in CyFun, ISO 27001 and Cyber Essentials compared.
One legal text deals with email security directly, but only for a narrow group. Commission Implementing Regulation (EU) 2024/2690 sets out the detail of NIS2's security measures for DNS service providers, cloud computing and data centre providers, managed and managed security service providers, and the other digital providers its Article 1 lists. Among those measures it requires a plan for deploying internationally agreed and interoperable modern email communications standards, without naming any. NIS2 in Ireland covers where Irish transposition stands, and the NIS2 supplier guide covers what a customer in scope asks of its suppliers.
How many Irish businesses have it
On 2 October 2026 FourWinds looked up the DMARC records of 400 Irish small-business email domains on its own outreach list: 61% had no DMARC record, 32% had DMARC at p=none, and 7% enforced it, at p=quarantine or p=reject. It is the list of businesses FourWinds was writing to, not a national sample.
A published count of large companies reads differently. On 22 July 2026 Red Sift, an email security company, published the DMARC policies of 201 of Ireland's largest companies. Of the 101 founded in Ireland, 39.6% were at p=reject, 33.7% at p=quarantine, 16.8% at p=none and 9.9% had no record. Of the 100 multinationals with major operations in Ireland, 63% were at p=reject, 20% at p=quarantine, 13% at p=none and 4% had no record. Red Sift does not say how the companies were chosen or when the records were read.
The two counts cover different businesses, measured by different people, and neither is a national figure.
How to read your own records
Three lookups answer most of the question, and an online DMARC checker or SPF checker runs the same ones. From a command prompt, with your own domain in place of yourdomain.ie:
- 1nslookup -type=TXT _dmarc.yourdomain.ie returns the DMARC record, if there is one. You want exactly one answer, starting v=DMARC1, with p=quarantine or p=reject and a rua address. No answer means no DMARC.
- 2nslookup -type=TXT yourdomain.ie returns every TXT record on the domain. The SPF record is the one starting v=spf1, and there must be exactly one: under RFC 7208 two SPF records are an error in themselves, and the check returns permerror (a permanent error).
- 3nslookup -type=MX yourdomain.ie returns the MX records, which say where mail sent to your domain is delivered. For Google Workspace the MX host is smtp.google.com, or hosts beginning aspmx on accounts set up before 2023; Microsoft 365 gives the value to use in its admin centre. The MX record is about receiving. It is not one of the three records that decide whether somebody can send as you.
What a working SPF record looks like
For a domain whose only sender is Microsoft 365, Microsoft gives the record as v=spf1 include:spf.protection.outlook.com -all. For Google Workspace, Google gives v=spf1 include:_spf.google.com ~all. Every other service that sends with your domain in its envelope adds its own include or IP address to the same record, because the domain can have only one.
The ending is the instruction for anything not listed. A -all says the source is not authorised; a ~all says it probably is not. Google recommends ~all. Microsoft recommends -all, and says why: DMARC treats both endings as SPF failures, but a DMARC policy is effectively ignored for ~all failures when the message carries no DKIM signature.
The record has a limit that a business adding services will run into. RFC 7208 allows ten DNS lookups while a receiver evaluates it: include, a, mx, ptr, exists and redirect each count, and ip4, ip6 and all do not. An include can contain further includes and those count too, so fewer than ten includes does not guarantee fewer than ten lookups. Past the limit the result is permerror, an SPF failure, for any message whose check runs beyond the tenth lookup.
Microsoft gives three ways to get back under the limit: replace a service's include with its published IP addresses where they are stable, move a service onto a subdomain with its own SPF record (each subdomain has its own limit), or send through fewer services. Microsoft says not to replace its own include with addresses, because its sending addresses change.
DKIM, and the message header that shows all three
A DKIM key is published at a name made of a selector and _domainkey. A receiver learns the selector from the signature on each message (its s= value). An outside check with no message to read has to guess the selector. Finding nothing at the names it tried does not show that there is no key.
You can confirm your own key. Microsoft 365 uses two selectors, selector1 and selector2, published as CNAME records; Google Workspace's default selector is google, published as a TXT record. nslookup -type=CNAME selector1._domainkey.yourdomain.ie, or nslookup -type=TXT google._domainkey.yourdomain.ie, shows whether the key is published.
The message itself is the better test. Send one to a mailbox on another service and open its headers. The Authentication-Results line shows the spf=, dkim= and dmarc= results, smtp.mailfrom= shows the envelope domain SPF was checked against, and header.d= shows which domain signed it. If neither of those two domains is yours, or a subdomain of yours, the message is not aligned and fails DMARC.
Keep a copy of what the lookups and a message header showed, with the date. If a customer's or an insurer's security questionnaire asks about email authentication, that is the evidence, and the cyber insurance questionnaire guide covers the rest of the form.
How to read an aggregate report
Once rua is set, receivers that send reports send each one as a data file (XML), which RFC 9990 says should be compressed. RFC 9989 asks receivers to send them at least once every 24 hours. It also says receivers do not have to send them at all. The reports go to whatever address rua names, so make it a mailbox kept for the purpose: Microsoft advises against a person's own inbox.
Each row covers one sending IP address: how many messages it sent with your domain in the From line, what the receiver did with them, and whether DKIM and SPF passed and whether they aligned. Passing and aligning are different results, and the gap between them is where the work is. Microsoft's guide to reading the reports gives these patterns.
- 1Your own mail system, with SPF or DKIM aligned: healthy.
- 2SPF passing but not aligned, from a service you recognise: it sends with its own envelope domain. Set it up to sign DKIM with your domain, or to use your domain in the envelope.
- 3DKIM passing but not aligned, from a service you recognise: it signs with its own domain. Set it up to sign with yours.
- 4Failing both, from a service you recognise: it is neither signing for you nor sending with your domain in its envelope. Set up DKIM at the service with your domain; or, if it can use your domain in its envelope, add it to your SPF record as well.
- 5Forwarded mail, failing: forwarding breaks SPF, and a DKIM signature survives only if the message is not changed on the way. Some failures here are normal.
- 6All failing, from sources you do not recognise: mail in your name that is not yours. At p=none it is delivered or not on the receiver's own judgement. At quarantine or reject, your policy asks for it to be stopped.
A reporting address at another domain needs that domain's permission
Raw XML is hard to read by eye, and Microsoft suggests a DMARC reporting service. If the rua address is at another company's domain, that domain has to publish a DNS record authorising it to receive your reports, and receivers do not deliver them until it does.
The safe order, on Microsoft 365 or Google Workspace
Moving to enforcement before every legitimate sender passes gets your own mail junked or refused. Microsoft's guide says the reason for a gradual move is to stop receivers rejecting good mail because of unintentional DMARC failures, and its Outlook.com announcement advises the same order: none, then quarantine, then reject. Even done slowly, Microsoft's guide expects some genuine mail to be wrongly flagged (false positives), which is one reason the reports stay on.
RFC 9989 says it may take many months of reading aggregate reports, depending on how often each kind of mail is sent, before a domain owner is sure all its mail authenticates.
- 1List every service that sends email as your domain: the mail system itself, the accounts package that emails invoices, the CRM, the newsletter tool, the website's contact and order forms, the booking system. For each, find out whether it sends through your own mailbox or from its own servers with your address on the mail. The second kind has to be set up on its own.
- 2Turn on DKIM for your mail system. In Microsoft 365, open the Defender portal and go to Email & collaboration, Policies & rules, Threat policies, Email authentication settings, then the DKIM tab; select your domain, publish the two CNAME records it gives you (selector1._domainkey and selector2._domainkey) at your DNS host, then switch on Sign messages for this domain with DKIM signatures. Microsoft says a message needs to be DKIM signed by the domain in its From address, and each custom domain is set up separately.
- 3Or, in Google Workspace, a super administrator opens the Admin console and goes to Apps, Google Workspace, Gmail, Authenticate email; selects the domain and generates a new record (2048-bit where the DNS host supports it); publishes the TXT record at google._domainkey; then clicks Start authentication. Google says it can take up to 48 hours to start working.
- 4Fix SPF: one record, every service that sends with your domain in its envelope, under the ten-lookup limit. Google says to set up SPF or DKIM before DMARC and to allow 48 hours after doing so, and Microsoft says the same about the order.
- 5Publish DMARC at p=none with a rua address, and read the reports. Each legitimate service that fails is fixed at the service: DKIM signing with your domain, or a subdomain of its own with its own SPF and DKIM. Microsoft recommends a subdomain for email services you do not control, such as bulk email.
- 6Move to p=quarantine and keep reading. RFC 9989 counts quarantine as enforcement. Microsoft's guide then goes on to p=reject once the reports show your own mail passing, doing subdomains with less mail first and the main domain last. It recommends reading the reports weekly while you move, and monthly once things are stable. RFC 9989's cautions about that last step are in the next section.
- 7Keep rua in the record. A new booking system or newsletter tool that starts sending as you will fail DMARC until it is set up, and at quarantine or reject its mail can be junked or refused. The reports are where that shows first.
- 8Domains you own and do not send from need records too. Microsoft's records for them are v=spf1 -all, which authorises nobody, and v=DMARC1; p=reject at _dmarc. It does not recommend DKIM records for them. On Microsoft 365 that includes your onmicrosoft.com domain if you do not send from it: Microsoft says to add v=DMARC1; p=reject for it in the Microsoft 365 admin centre, under Settings, Domains, then that domain's DNS records tab.
Quarantine or reject
Microsoft's guide sets p=reject as the goal for all your domains and subdomains. RFC 9989, the standard itself, is more cautious about that last step. Either policy keeps a forgery of your exact domain out of the inbox at receivers that honour it: quarantine asks for the message to be treated as suspicious, which at Microsoft 365 means the Junk Email folder, and reject asks for it to be refused.
RFC 9989 says domains used for general-purpose email should not publish p=reject, and in particular that a domain whose users might post to mailing lists should not. A list sends each post on from its own servers, which breaks SPF. If it also changes the message, DKIM breaks too, and the post fails DMARC at the subscribers' mail systems. If a subscriber's system refuses the post, the list software can treat that address as dead and unsubscribe it automatically. The RFC also records that mailing list software has adopted workarounds that rewrite the From line, and that list mail without one is still frequently refused.
A domain that goes to p=reject anyway should, under RFC 9989, first publish p=none for at least a month and then p=quarantine for as long again, comparing what happened to its mail under each. It must sign its mail with DKIM and not rely on SPF alone, because forwarding breaks SPF and a DKIM signature generally survives it.
The standard also tells receivers not to reject a message on p=reject alone: they are to weigh the policy with other evidence and, if there is none, treat the message as if the policy were quarantine. RFC 9989's conditions for the last step turn on two facts about the business: whether DKIM signs every message it sends, and whether anybody might post to mailing lists from the domain.
What DMARC does not stop
RFC 9989 is explicit about its own limits. DMARC acts directly only on forgery of your exact domain (exact-domain spoofing). It does not deal with domain names that look similar, or with misuse of the display name.
A lookalike domain is somebody else's domain, with its own records, controlled by whoever registered it. Your DMARC policy has nothing to say about it. The NCSC lists registered lookalike domains among the ways attackers impersonate trusted contacts, and advises watching for lookalike and typo registrations and blocking inbound mail from newly registered domains or domains with small typos.
A display name is the name shown beside the address. A message can carry a familiar person, brand or role as its display name over an address at any domain, and RFC 9989 puts that outside DMARC's scope.
A mailbox somebody has broken into is the hardest case. Mail sent from your own mailbox by somebody who has its password comes from your real system and passes SPF, DKIM and DMARC like the rest of your mail, because a DMARC pass means only that use of the domain was authorised. The NCSC's answers are multi-factor authentication on all email accounts, checking for suspicious forwarding rules, and a call-back on any change of bank details, which is where the invoice redirection guide picks up.
Your DMARC protects anybody whose mail system acts on it: your customers and suppliers, and your own staff when a forgery of your managing director's address arrives from outside. CEO fraud, an attacker pretending to be a company executive, is the first business email compromise scenario the NCSC lists. Whether a forgery of a supplier's address reaches you depends on the supplier's DMARC and on your own mail system. In Microsoft 365, the anti-phishing policy setting "Honor DMARC record policy when the message is detected as spoof" decides whether a sender's quarantine or reject is acted on.
Sources
- 1.How email authentication works in Microsoft 365 · Microsoft
- 2.Regulation (EU) 2016/679 (GDPR), Article 32 · EUR-Lex, Publications Office of the European Union
- 3.Protecting Against Business Email Compromise and Payment Fraud, 25 July 2025 · National Cyber Security Centre
- 4.Email sender guidelines · Google
- 5.Sender Best Practices · Yahoo
- 6.Strengthening Email Ecosystem: Outlook's New Requirements for High-Volume Senders · Microsoft
- 7.RFC 9989, Domain-Based Message Authentication, Reporting, and Conformance (DMARC), May 2026 · Internet Engineering Task Force
- 8.RFC 7489, Domain-based Message Authentication, Reporting, and Conformance (DMARC), March 2015 · RFC Editor
- 9.RFC 9990, DMARC Aggregate Reporting, May 2026 · Internet Engineering Task Force
- 10.RFC 9991, DMARC Failure Reporting, May 2026 · Internet Engineering Task Force
- 11.RFC 7208, Sender Policy Framework (SPF) · Internet Engineering Task Force
- 12.RFC 6376, DomainKeys Identified Mail (DKIM) Signatures · Internet Engineering Task Force
- 13.Set up DMARC to validate email in Microsoft 365 · Microsoft
- 14.Set up DMARC, Google Workspace Admin Help · Google
- 15.Email sender guidelines FAQ · Google
- 16.Commission Implementing Regulation (EU) 2024/2690, Article 1 and Annex point 6.7.2(k) · EUR-Lex, Publications Office of the European Union
- 17.DMARC in Ireland: where the biggest companies stand · Red Sift
- 18.Set up MX records for Google Workspace · Google
- 19.Connect your domain by adding DNS records · Microsoft
- 20.Set up SPF to identify valid email sources for your Microsoft 365 domain · Microsoft
- 21.Set up SPF, Google Workspace Admin Help · Google
- 22.How to use DKIM for email in your custom domain · Microsoft
- 23.Set up DKIM, Google Workspace Admin Help · Google
Free, and no account needed
See what your domain tells the world
The free compliance check reads your domain's SPF and DMARC records from outside and says in plain words whether your domain asks receivers to refuse or junk mail that forges your address, and whether anybody collects the reports. It also asks a few questions about the business. Kept, with a free account, it becomes a compliance record with the statutory clocks on it.
Run the free checkWhen the question is wider than email
The compliance assessment covers the rules that reach an Irish SME: GDPR, the EU AI Act, accessibility, and a DPIA where the law asks for one. It ranks the gaps by exposure with the fix against each one, and leaves a record you can hand to a board, an insurer or a procurement team.
Compliance assessmentWho wrote this
Oscar Cobbe · Founder, FourWinds Digital
Writes and maintains the legal explainers on this site, and does the compliance work behind them. Every date and article number here is checked against the legislation itself before it is published, and updated when the law changes.
More about how we work →Read next
- Payment fraudA supplier emails new bank details. What should happen next
- Cyber insuranceWhat a cyber insurer asks an Irish small business, and how to answer it truthfully
- Cyber securityA customer wants a security standard. CyFun, ISO 27001 or Cyber Essentials?
Written on 15 October 2026 and accurate as at that date. This is general information about how the rules work, not legal advice on your situation. Where you need a solicitor, we say so.