Who it is for
This is for a small business owner or office manager whose website has a contact or quote form, and who has noticed (or suspects) that some of those messages land in junk, show up late, or never arrive. It also fits anyone who just launched or moved a site and wants to be sure form leads are reaching a real person. You do not need to write code. You will need access to your domain’s DNS settings, or someone who has it, and about an hour.
Why this happens
When someone fills out your form, your website (or a form service) sends you an email on their behalf. Gmail, Outlook, and other mail providers look at that message and ask: is the server that sent this actually allowed to send for this domain? If the answer is unclear, the message gets marked as spam or quietly dropped. Mail providers have tightened these checks since 2024, so a form that worked fine a few years ago can start failing without anything on your site changing (Google: Email sender guidelines).
The most common causes:
- The form sends mail “from” the visitor’s own address (for example a Gmail address). Your website is not allowed to send as Gmail, so the message looks forged.
- The website sends mail straight from the web host’s server, which is not listed as an approved sender for your domain.
- Your domain has no SPF, DKIM, or DMARC records, or they are incomplete.
What you need
- Login to your website builder or host, and to the form plugin or form service if you use one.
- Login to your domain’s DNS provider (where your domain’s records are managed).
- Access to the inbox that receives form leads.
- A personal email account (Gmail, Outlook, anything) for test submissions.
Steps
1. Confirm the problem with a test
- Submit your website form three times using your personal email as the visitor address. Write “TEST” in the message.
- Check the receiving inbox, its junk or spam folder, and any quarantine or “other” tab.
- Write down which tests arrived, where, and how long they took. If all three land in the inbox within a minute or two, you may not have a problem. Still read step 4 so it stays that way.
2. Read the message headers
Mail providers record whether a message passed their checks.
- In Gmail, open the test message, click the three-dot menu, and choose Show original. Look for the lines that say SPF, DKIM, and DMARC and whether each says PASS or FAIL.
- In Outlook, open the message and look for View message details or View message source, then search the text for
spf=,dkim=, anddmarc=. - Note the domain listed next to each result. A failure, or a pass for the web host’s domain instead of yours, tells you where to look next.
3. Send form mail from your own domain, not the visitor’s
This one change fixes a large share of form delivery problems.
- In your form settings, set the From address to an address on your own domain, such as
website@yourbusiness.comornoreply@yourbusiness.com. - Put the visitor’s email address in the Reply-To field instead. When you hit reply, your answer still goes to the visitor.
- If your form plugin offers a “send as visitor” option, turn it off.
4. Route form mail through a real sending service
Mail sent straight from a web server is the easiest kind to flag. It is more reliable to send through a service that is set up to send email for your domain.
- If your business email runs on Google Workspace or Microsoft 365, ask whether your website or form plugin can send through that account using authenticated SMTP or an app connection.
- Many site builders and form services have their own built-in email sending. Look for a setting to “verify” or “authenticate” your domain. It will usually give you a few DNS records to add.
- If you use a dedicated transactional email service, follow its domain verification steps exactly.
- Whatever you choose, note the service name. You will need it for SPF and DKIM.
5. Check and fix SPF
SPF is a single DNS text record that lists which services are allowed to send email for your domain (Google on SPF, Microsoft on SPF).
- In your DNS provider, look for a TXT record on your main domain that starts with
v=spf1. - Make sure there is only one SPF record. Two separate
v=spf1records cause both to fail. If you find two, combine them into one. - Make sure it includes your email provider and the service your website sends through. Each provider’s help page gives the exact
include:value to add. - Keep it tidy. SPF only allows a limited number of lookups, so remove services you no longer use.
6. Turn on DKIM
DKIM adds a digital signature to each message so mail providers can tell it really came from your domain and was not changed on the way.
- In your email provider’s admin area, and in your website’s sending service, look for DKIM or “domain authentication” (Microsoft on DKIM).
- Each will give you one or more DNS records (usually TXT or CNAME). Add them exactly as shown.
- Go back to the admin area and click Verify or Start authentication. DNS changes can take a while to show up, so allow some time before checking again.
7. Add a DMARC record and start in monitor mode
DMARC tells mail providers what to do when a message fails SPF and DKIM, and sends you reports about who is sending as your domain (Google on DMARC, Microsoft on DMARC).
- Add a TXT record at
_dmarc.yourbusiness.com. - Start with a monitoring policy, for example
v=DMARC1; p=none; rua=mailto:dmarc-reports@yourbusiness.com. This changes nothing about delivery yet. It just starts the reports. - After a few weeks of reports showing your real senders all pass, you or your IT person can move to
p=quarantineand laterp=rejectto block spoofed mail.
8. Test again and set a reminder
- Repeat the three test submissions from step 1.
- Check the headers again. You want SPF, DKIM, and DMARC to show PASS for your own domain.
- Add a monthly calendar reminder to submit one test form. Forms break quietly after plugin updates, password changes, or a switch of email provider.
Caution
- Do not delete or replace your SPF record without listing every service that sends as your domain, including your email provider, billing or invoicing tools, and newsletter tools. Removing one can break that tool’s mail.
- Do not jump straight to a DMARC
p=rejectpolicy. Start withp=noneand watch the reports first. - A form plugin that “sends as the visitor” will keep failing no matter how good your DNS records are. Fix step 3 first.
- If your website changes hosts or your domain moves to a new DNS provider, recheck these records. They do not always come along automatically.
- Keep the DNS and email admin logins in your own hands, not only your web person’s.
- If leads are still missing after all of this, check for inbox rules, a full mailbox, or a forwarding step that is failing before blaming the form.