<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Dentist in Pico Rivera]]></title><description><![CDATA[Editor of Dentist in Pico Rivera — WordPress operations, migrations and local SEO, written from firsthand experience.]]></description><link>https://dentistpicorivera.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Sat, 07 Nov 2026 12:03:44 GMT</lastBuildDate><atom:link href="https://dentistpicorivera.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[My WordPress Site's Email Was Silently Broken — The SMTP + DKIM/SPF/DMARC Fix]]></title><description><![CDATA[My contact form looked fine. It accepted submissions, showed a thank-you message, and sent exactly nothing. For roughly three days after launch, every…]]></description><link>https://dentistpicorivera.hashnode.dev/my-wordpress-site-s-email-was-silently-broken-the-smtp-dkim-spf-dmarc-fix</link><guid isPermaLink="true">https://dentistpicorivera.hashnode.dev/my-wordpress-site-s-email-was-silently-broken-the-smtp-dkim-spf-dmarc-fix</guid><category><![CDATA[WordPress]]></category><category><![CDATA[webdev]]></category><category><![CDATA[email]]></category><category><![CDATA[dns]]></category><dc:creator><![CDATA[Masood Ahmad]]></dc:creator><pubDate>Sat, 31 Oct 2026 14:06:51 GMT</pubDate><content:encoded><![CDATA[<p>My contact form looked fine. It accepted submissions, showed a thank-you message, and sent exactly nothing. For roughly three days after launch, every enquiry my site received disappeared — no email to me, no error anywhere a visitor could see.</p>
<p>This is the diagnosis and fix, in the order that actually worked.</p>
<h2>Step 1: Prove it's the mail, not the form</h2>
<p>Before touching settings, I sent a test from the WordPress dashboard (WP Mail SMTP → Email Test). It failed. That one test splits the problem in half: the form plugin was fine; WordPress itself could not send mail.</p>
<p>The default WordPress mail path (PHP <code>mail()</code>) is the usual suspect on shared hosting — messages leave the server unauthenticated, and receiving mail servers treat them accordingly: spam folder at best, silent drop at worst.</p>
<h2>Step 2: Send through a real mailbox instead</h2>
<p>I created a mailbox on the domain itself (info@ at my hosting control panel) and pointed WordPress at it with the WP Mail SMTP plugin:</p>
<ul>
<li><strong>Mailer:</strong> Other SMTP</li>
<li><strong>SMTP Host:</strong> the hosting mail server (mail.)</li>
<li><strong>Port / Encryption:</strong> 465 with SSL</li>
<li><strong>Authentication:</strong> ON, with the mailbox's username and password</li>
<li><strong>From Email:</strong> the same mailbox address, with "Force From Email" ON so plugins can't override it</li>
</ul>
<p>Sent the dashboard test again. This time it arrived — in the inbox, not spam. But "it arrives" is not the same as "it's fixed."</p>
<h2>Step 3: Authenticate the domain (the part most tutorials skip)</h2>
<p>Authenticated SMTP gets the message out. Three DNS records are what convince Gmail and Outlook to trust it:</p>
<ul>
<li><strong>SPF</strong> — a TXT record naming which servers may send for the domain.</li>
<li><strong>DKIM</strong> — the mail server signs each message; the public key lives in a TXT record (mine sits under a <code>default._domainkey</code>-style selector — your host's email panel will show you the exact record to publish).</li>
<li><strong>DMARC</strong> — a TXT record on <code>_dmarc</code> saying what to do with mail that fails the other two, and where to send reports.</li>
</ul>
<p>My host's email panel has a "Email Deliverability" screen that shows all three records with a Valid/Invalid verdict each. All three read <strong>Valid</strong> before I stopped — that's the acceptance test, not "the test email arrived once."</p>
<h2>Step 4: Test like an outsider</h2>
<ul>
<li>Dashboard test to a Gmail address → arrived in Inbox.</li>
<li>A real form submission end-to-end → arrived.</li>
<li>Reply path sanity check: replies go to the domain mailbox, which I can actually read.</li>
</ul>
<p>Four green checks. Only then did I consider it fixed.</p>
<h2>What I do differently now</h2>
<p>For three days that form was a hole in the site, and nothing — not the form plugin, not WordPress, not the host — told me. The lessons, in order of how much they cost me:</p>
<ol>
<li><strong>Test email on launch day, from the outside in.</strong> A form that "works" on screen proves nothing about delivery.</li>
<li><strong>Turn on the form plugin's database storage.</strong> Mine was off, so the lost submissions left no trace anywhere. Storage is now on — if mail ever breaks again, the enquiries survive in the database.</li>
<li><strong>SPF + DKIM + DMARC are launch tasks, not later tasks.</strong> They take ten minutes at the DNS panel and decide whether your mail exists.</li>
</ol>
<p>A contact form is the whole point of a lead-generation site. Mine was decorative for three days. The fix took one sitting — once I knew where to look.</p>
<hr />
<p><em>Masood Ahmad is the Editor of <a href="https://dentalpicorivera.com">Dentist in Pico Rivera</a>, a one-person lead-generation website he built, migrated and runs himself.</em></p>
]]></content:encoded></item></channel></rss>