<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>nobounce.dev blog</title>
    <link>https://nobounce.dev/blog/</link>
    <description>How email validation actually behaves against live DNS: typo correction, RFC 7505 null MX, the SERVFAIL/NXDOMAIN split, and failing open in a signup flow.</description>
    <language>en</language>
    <lastBuildDate>Mon, 24 Aug 2026 00:00:00 GMT</lastBuildDate>
    <item>
      <title>nobounce.dev</title>
      <link>https://nobounce.dev/</link>
      <guid isPermaLink="true">https://nobounce.dev/</guid>
      <description>Email validation that suggests the correction instead of only rejecting.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Fail Open: Email Validation Must Never Block a Signup</title>
      <link>https://nobounce.dev/blog/fail-open-email-validation-signup/</link>
      <guid isPermaLink="true">https://nobounce.dev/blog/fail-open-email-validation-signup/</guid>
      <description>Treat the validator as advisory infrastructure: set a timeout, branch on the verdict, record what was actually checked, and let users through when it cannot answer.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>How to Batch-Validate a List of Email Addresses</title>
      <link>https://nobounce.dev/blog/batch-validate-email-list/</link>
      <guid isPermaLink="true">https://nobounce.dev/blog/batch-validate-email-list/</guid>
      <description>POST /v1/check/batch returns one verdict per address keyed by email_sha256; chunk oversized lists, check remaining quota first, and act on suggestions instead of only counting rejects.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>How to Choose an Email Validation API</title>
      <link>https://nobounce.dev/blog/choosing-an-email-validation-api/</link>
      <guid isPermaLink="true">https://nobounce.dev/blog/choosing-an-email-validation-api/</guid>
      <description>Accuracy percentages on vendor pages are unfalsifiable, so evaluate the response contract, the failure behaviour and the retention policy instead.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>MX Validation Does Not Catch the Typos That Matter</title>
      <link>https://nobounce.dev/blog/mx-validation-misses-typo-domains/</link>
      <guid isPermaLink="true">https://nobounce.dev/blog/mx-validation-misses-typo-domains/</guid>
      <description>An MX lookup accepts the four most common Gmail and Hotmail misspellings, because typo domains are registered and resolve correctly.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Null MX, RFC 7505, and Why Reserved Domains Need Their Own Reason Code</title>
      <link>https://nobounce.dev/blog/null-mx-rfc-7505-reserved-domains/</link>
      <guid isPermaLink="true">https://nobounce.dev/blog/null-mx-rfc-7505-reserved-domains/</guid>
      <description>A domain publishing MX 0 . is telling you it accepts no mail at all, and example.com does the same — but breaking your test suite is not the same problem as a bad signup.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>One Mail Host Serves Both gmai.com and hotmial.com</title>
      <link>https://nobounce.dev/blog/typosquat-mx-host-clustering/</link>
      <guid isPermaLink="true">https://nobounce.dev/blog/typosquat-mx-host-clustering/</guid>
      <description>Typo domains are an unenumerable long tail, but the operators collecting mail for them reuse infrastructure, so the MX host is the tractable signal.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>SERVFAIL Is Not NXDOMAIN, and Conflating Them Accepts Bad Addresses</title>
      <link>https://nobounce.dev/blog/servfail-vs-nxdomain-email-validation/</link>
      <guid isPermaLink="true">https://nobounce.dev/blog/servfail-vs-nxdomain-email-validation/</guid>
      <description>A resolver failure and a nonexistent domain arrive as different DNS status codes and demand opposite responses: fail open on one, reject on the other.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Suggest the Correction Instead of Rejecting the Signup</title>
      <link>https://nobounce.dev/blog/suggest-the-correction-not-rejection/</link>
      <guid isPermaLink="true">https://nobounce.dev/blog/suggest-the-correction-not-rejection/</guid>
      <description>Rejecting a mistyped address ends the session; naming the intended address recovers it, which means the interesting engineering is in the suggestion.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Validate Email Addresses From an AI Agent</title>
      <link>https://nobounce.dev/blog/validate-emails-from-an-agent/</link>
      <guid isPermaLink="true">https://nobounce.dev/blog/validate-emails-from-an-agent/</guid>
      <description>An autonomous agent can obtain access, validate an address and recover from an error without a human in the loop, provided every step is a single HTTP request.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    </item>
    <item>
      <title>Why nobounce Will Never Do SMTP RCPT TO Probing</title>
      <link>https://nobounce.dev/blog/why-no-smtp-rcpt-probing/</link>
      <guid isPermaLink="true">https://nobounce.dev/blog/why-no-smtp-rcpt-probing/</guid>
      <description>The technique that promises per-mailbox certainty depends on infrastructure reputation, returns weak signals at the largest providers, and is permanently outside this product&#39;s scope.</description>
      <pubDate>Mon, 24 Aug 2026 00:00:00 GMT</pubDate>
    </item>
  </channel>
</rss>
