La Ventana, Baja California Sur, México. [email protected]
←Journal
·9 min read

Contact Form Emails That Reach the Inbox: SPF, DKIM, and DMARC

A contact form only works if its emails arrive. Here is how SPF, DKIM, and DMARC decide whether contact form emails reach the inbox, why the usual form setup fails the alignment test, and how to configure sending so inquiries aren't lost to spam folders or rejections.

Windware Studio· Design & Development Team

A contact form can look perfect, validate every field, and show a friendly confirmation message, and the inquiry can still disappear. The form did its job. The email that was supposed to carry the inquiry to the business was filtered as spam or refused by the receiving server, and neither the visitor nor the business was told.

This article explains how receiving mail servers decide whether to trust a message, using the three email authentication standards that now sit behind those decisions: SPF, DKIM, and DMARC. It covers what each one checks, what Gmail and Outlook.com now require, and why the most common way of sending contact form emails fails the test that matters most.


Why form notifications go missing quietly

Most website failures are visible. A broken layout or a slow page shows up in testing. A lost notification email doesn’t, because the form’s own confirmation screen only proves that the website accepted the submission. Whether the resulting email reached anyone is decided later, by a mail server the website doesn’t control.

That decision has become stricter. In February 2024, Google began enforcing sender requirements for mail to personal Gmail accounts, and its guidelines warn that messages without authentication “might be marked as spam or rejected.” Microsoft followed for Outlook.com, Hotmail, and Live addresses in May 2025. A form that sent mail successfully for years can start losing it without any change to the website.

The result is a particular kind of silence. The business assumes the site is quiet. The visitor assumes the business didn’t reply.


What SPF, DKIM, and DMARC each check

Each standard answers a different question about a message. They are easiest to understand separately, and then together.

  • SPF (Sender Policy Framework, RFC 7208). A DNS record that lists the servers allowed to send mail for a domain. The receiving server checks whether the server that delivered the message is on the list for the domain in the message’s envelope sender, a technical return address that recipients don’t normally see.
  • DKIM (DomainKeys Identified Mail, RFC 6376). A cryptographic signature added to each message. The standard describes it as a way for the organization that owns the signing domain to “claim some responsibility” for a message. The receiver fetches the public key from that domain’s DNS and checks that the signature is valid.
  • DMARC (Domain-based Message Authentication, Reporting, and Conformance). A DNS record that tells receivers what the domain owner wants done with mail that fails, and where to send reports. DMARC was revised and published as an IETF Standards Track document, RFC 9989, in May 2026, replacing RFC 7489 from 2015. Records keep the same v=DMARC1 version tag; the revision changes how receivers find the organizational domain and removes three tags (pct, rf, and ri).

Alignment is the test forms tend to fail

SPF and DKIM each authenticate a domain, but not necessarily the one the recipient sees. RFC 9989 explains that SPF and DKIM “are not directly associated” with the domain in the visible From line, which it calls the Author Domain. DMARC closes that gap. A message passes DMARC only if SPF or DKIM passes and the domain they authenticated is aligned with the From domain.

Alignment comes in two modes. Under relaxed alignment, which RFC 9989 notes nearly all domain owners find sufficient, the domains need only share an organizational domain, so mail.example.com aligns with example.com. Under strict alignment, they must be identical.

The standard is explicit about why this matters: any domain owner, “even a bad actor,” can publish an SPF record and obtain an SPF pass for its own domain. An unaligned pass proves nothing about the business named in the From line.

CheckWhat it provesWhat it doesn’t prove
SPF passThe delivering server is authorized for the envelope sender’s domainThat the envelope domain matches the From address
DKIM passA domain signed the message and the signed content wasn’t alteredThat the signing domain matches the From address
DMARC passThe From domain was authenticated through an aligned SPF or DKIM resultThat the message is wanted, safe, or will reach the inbox

What Gmail and Outlook.com now require

Google’s sender guidelines set two tiers. Since 1 February 2024, all senders to personal Gmail accounts must set up SPF or DKIM, keep valid forward and reverse DNS for sending servers, use TLS, and keep the spam rate reported in Google’s Postmaster Tools below 0.3%. Senders of more than 5,000 messages a day must also have both SPF and DKIM, publish a DMARC record (a policy of p=none is acceptable), and make sure the From domain is aligned with either the SPF or the DKIM domain.

Microsoft’s April 2025 announcement, updated later that month, applies similar rules to domains sending more than 5,000 messages a day to its consumer service: SPF and DKIM must pass, and DMARC must be at least p=none and aligned with SPF or DKIM, “preferably both.” The update states that messages failing these requirements will be rejected with the error “550; 5.7.515 Access denied.”

A small service business won’t send 5,000 form notifications a day, so the bulk-sender rules don’t strictly apply to its contact form. Two qualifications matter, though. Microsoft frames its threshold per sending domain, so newsletters and invoicing tools that send as the same domain add to the total. And Microsoft’s own FAQ notes that while enforcement targets large senders first, “all senders benefit from these best practices.” Google likewise recommends SPF, DKIM, and DMARC for every domain.


Where contact forms break alignment

The typical failure isn’t a missing record. It’s a sending setup that produces the wrong combination of domains.

The From line holds the visitor’s address

Many form setups put the visitor’s email in the From line so the business can click Reply. The message then claims to come from, say, a Yahoo or Gmail address while being sent by the business’s web server. That server has no authority to send for those domains, so the message cannot align.

The consequence depends on the visitor’s provider. A DNS lookup on 10 October 2026 showed yahoo.com publishing a DMARC policy of p=reject, a request that receivers refuse unauthenticated mail using its domain. Google’s guidelines separately warn senders not to impersonate Gmail From headers. RFC 5322, the Internet Message Format standard, already provides the right tool: the From field identifies the author, while Reply-To “indicates the address(es) to which the author of the message suggests that replies be sent.”

The server signs for the wrong domain, or not at all

A form that relies on a hosting server’s built-in mail function can send with the server’s own hostname as the envelope sender and no DKIM signature for the business’s domain. SPF may pass for the host’s domain, but that domain isn’t aligned with the business’s From address. Transactional email services typically solve this by letting you publish DKIM keys and a custom return-path on your own domain.

Forwarding breaks SPF but usually not DKIM

Many small businesses forward form notifications from a role address such as hello@ to a personal inbox. RFC 9989 notes that relayed mail “will most likely fail SPF checks” at the final mailbox, because it now arrives from the forwarder’s server, while “DKIM signatures will generally remain valid.”

A DKIM signature behaves like a tamper-evident seal on an envelope: it stays intact when the envelope is handed from one courier to the next, while SPF only vouches for the courier who made the final delivery. The comparison has limits, since a forwarder that edits the message content can break the seal too. Still, it explains why the standard says domains publishing p=reject “MUST NOT rely solely on SPF.”

The SPF record has quietly grown too long

Each tool that sends on a domain usually asks for another include: in the SPF record. RFC 7208 caps the DNS-querying terms evaluated during an SPF check at 10. Past that limit, the check returns a permanent error rather than a pass, and Microsoft’s FAQ flags the same risk.

“A form confirmation tells you the website accepted the inquiry. Only the receiving mail server decides whether anyone reads it.”
— Windware Studio Practice Note


A sending setup that holds up

Checklist: contact form email authentication

  • The From address is on your own domain, for example [email protected], never the visitor’s address.
  • The visitor’s address is placed in the Reply-To field, so replying still reaches them.
  • Form email is sent through an authenticated SMTP account or a transactional email service, not an unauthenticated server mail function.
  • DKIM signing is enabled for your domain (Google requires keys of at least 1024 bits and recommends 2048).
  • The SPF record lists every service that sends on your domain and stays within the 10-lookup limit.
  • A DMARC record is published, starting at p=none with a reporting address.
  • A test submission is sent to Gmail and Outlook.com addresses, and the message headers show SPF, DKIM, and DMARC passing.
  • Submissions are also stored somewhere other than email, such as the form service’s dashboard, so a delivery failure never loses the inquiry itself.

Move toward enforcement slowly

RFC 9989 recommends starting with p=none, a monitoring mode, and reading the aggregate reports receivers send back. Those reports show every service sending mail with your domain, including the ones nobody remembered, like an old booking tool or an accounting system. Only after fixing legitimate streams that fail alignment should a domain move to quarantine or reject. The standard notes this can take “many months” of reports, depending on how often a business sends mail.


What authentication doesn’t fix

Authentication establishes that a message really came from your domain. It doesn’t establish that the message is wanted. RFC 9989 is direct about this: a DMARC pass “does not guarantee that delivery to the recipient’s inbox would be safe or desirable,” and receivers may use DMARC as only one input among many. Spam complaints, sending reputation, and content still play a part.

Stricter policies carry their own risk. The same standard warns that p=reject can cause problems for forwarded mail and mailing lists, which is why it pairs that policy with a firm DKIM requirement. A business that moves to enforcement before its reports are clean can block its own legitimate mail.

The provider rules described here also apply to consumer mailboxes and change over time. Business mailboxes hosted by Google or Microsoft may filter differently. Testing real submissions after launch, and again after any change to sending tools, is the only reliable confirmation.


Practical takeaways for your next website

  1. Treat delivery as part of the form. A contact form isn’t finished until a test inquiry arrives in a real inbox with authentication passing.
  2. Keep the From address on your domain. Use Reply-To for the visitor’s address, as the email standard intends.
  3. Sign with DKIM for your own domain. It is the check that survives forwarding, and it carries alignment when SPF can’t.
  4. Publish DMARC and read the reports. Start with p=none, find every service sending as your domain, and tighten the policy only when everything legitimate passes.
  5. Store submissions outside email. A dashboard or database copy means a delivery problem delays a reply instead of losing a client.

Ready to Discuss Your Website?

If you are planning a new website, a service redesign, or custom development for your business, we’re here to help, including making sure the inquiries your site collects actually reach you.