What does 'DKIM=permited with missing b=' mean in MailTester's report?

You sent an email. The recipient’s system says DKIM=permited. But MailTester flags it as “DKIM=permited with missing b=” — a silent red flag. Why does a pass turn into a near-fail?

This isn’t a false positive. It means the domain’s DKIM record is technically correct, but the actual email message lacks the b= field — the cryptographic signature that proves authenticity. Without it, DKIM validation can’t complete.

Think of DKIM like a digital seal on a letter. The seal’s design matches the domain’s public key (that’s the “permited” part), but the letter has no seal applied. The envelope looks legit — but the proof is missing.

Key takeaways

  • DKIM=permited shows the domain’s public key is valid, but a missing b= in the header means the signature is not present in the message.
  • Even if DKIM keys are configured correctly on your domain, poor email formatting or flawed email-sending software can omit the b= field.
  • MailTester detects this gap to prevent you from assuming inbox delivery is guaranteed when the cryptographic chain is broken.

Why does MailTester report DKIM=permited with missing b= even when DKIM looks correct?

MailTester reports DKIM=permited with a missing b= because it verified your DNS record (selector and public key) but found no valid DKIM signature in the email header. DKIM requires both a working DNS record and a properly formatted b= parameter in the email. If the server or template strips the signature during delivery, the DNS check passes but the email fails validation. This means your signing setup is configured — but the message isn’t actually signed when sent.

The two parts of DKIM validation

DKIM validation is not just about DNS. First, MailTester checks that your domain’s public key is accessible via DNS using the correct selector. If that’s present and correctly formatted, the result shows DKIM=permited. But the second part — the actual signature — is equally critical. The email must include a b= parameter with a valid, signed hash in the header.

Let’s break it down: if your email client or delivery system strips the signature during processing — common with some legacy templates or misconfigured mail servers — the signature header vanishes. MailTester sees the DNS record, so it grants permited, but the b= parameter is missing. This results in a false positive in terms of setup, but a real delivery failure in practice.

Common causes and how to fix them

Misconfigured mail servers, outdated or broken email templates, or third-party email tools that alter content can all remove the b= value without warning. For example, some HTML-based templates in marketing platforms automatically rewrite headers, which can inadvertently strip DKIM signatures.

Check your mail server logs or delivery middleware to confirm that the signature is being applied before the email leaves your system. Use a real-time verification API or inbox placement test to catch these issues before sending to large lists.

Also verify that your DKIM selector and public key are correctly published and publicly accessible. Tools like MXToolbox can test DNS records. If the record is valid but the message still lacks b=, the problem lies in how the email is generated or processed — not in DNS.

Once you confirm the signature is omitted during delivery, review your template, server config, or integration settings. If you're using a platform like SendGrid, HubSpot, or Klaviyo, ensure DKIM signing is enabled at the sending level. You can also use MailTester’s bulk list verification to test entire campaigns for consistent DKIM failures before sending.

What’s the impact of a missing 'b=' field on deliverability?

When a DKIM signature lacks the 'b=' field, the authentication fails or appears incomplete, causing many receiving servers to treat the email as suspicious—even if the DNS record is correct. This weakens trust, especially under strict DMARC policies, which can result in rejected messages, inconsistent inbox placement, and gradual damage to sender reputation over time. Even one flawed signature can trigger filtering or delivery delays across major platforms like Gmail and Outlook.

Why the 'b=' field matters, even when DNS is fine

DKIM relies on two key components: the public key in DNS and the 'b=' field in the email header, which contains the actual cryptographic signature. A valid DNS record alone isn’t enough. If the 'b=' value is missing, even by mistake during email generation, the receiving server can’t verify the message’s integrity.

Some systems mark this as a soft fail or skip validation entirely, especially if they’re configured to reject non-signatured messages. According to the original DKIM specification in RFC 6376, the 'b=' tag is required for a valid signature. Omitting it breaks the chain of trust, regardless of how well your DNS setup looks.

Delivery risks in practice

Even if your email reaches the inbox, missing 'b=' can mark your messages as low trust—particularly when combined with other warning signs like high bounce rates or inconsistent sending patterns. Recipients may not notice, but filters do. Over time, this accumulates as a signal of poor sender hygiene, reducing deliverability across multiple platforms.

DMARC policies often require a pass on both DKIM and SPF. If DKIM fails due to a missing 'b=', your email may be treated as unauthenticated, even if SPF passes. This increases the odds of being flagged as phishing or spam—especially in high-security environments like financial or government domains.

If you're seeing unpredictable inbox placement or sudden spikes in non-delivery reports, a missing 'b=' could be the invisible culprit. You can test this in real time with MailTester’s inbox placement tool. It simulates delivery across major providers and surfaces subtle issues like weak DKIM alignment or missing signature fields. Proactively checking your email setup before sending helps maintain reputation and keeps your message from being lost in transit.

How MailTester detects the 'b=' field anomaly

When MailTester runs inbox-placement tests, it examines every layer of the email header, including the DKIM-Signature line. It specifically checks for the 'b=' parameter, which holds the actual signature data. If the field is missing, empty, or incorrectly formatted—even if the DNS record is valid—it logs the alert as "DKIM=permited with missing b=". This signals a failure in the signature’s construction, not the DKIM setup itself.

What the DKIM-Signature header must contain

According to RFC 6376, the DKIM-Signature header must include a properly formatted 'b=' tag with a base64-encoded value. This value is generated by signing the message body and headers using the private key. It’s the core of DKIM’s proof of authenticity. Without it, the receiving server cannot validate the signature, even if the public key is reachable via DNS.

  1. Parse the full DKIM-Signature header during inbox-placement tests — MailTester processes the raw header from the received email, not just a summary. This includes all parameters, including 'b='. Only by examining the complete header can you detect if any required element is absent.
  2. Validate the presence and syntax of the 'b=' parameter — The field must exist and start with 'b=' followed by a base64 string. If it’s empty (e.g., 'b=') or malformed (e.g., 'b=abc!123'), the signature fails.
  3. Flag 'b=' as missing even with valid DNS — A correct DKIM TXT record ensures public key availability, but doesn’t guarantee the 'b=' field was added during sending. MailTester detects this mismatch: valid DNS, invalid signature.
  4. Record result as "DKIM=permited with missing b=" — This verdict means the server accepted the DKIM check, but the signature failed due to absence or corruption of the 'b=' field. It’s a common cause of delivery issues.
  5. Use this to triage deliverability problems — If you see this error in MailTester’s inbox-placement report, your mail server or integration is likely omitting the signature payload during the signing process. Check your email client, SMTP gateway, or email API for misconfigurations.
What the DKIM-Signature header must containThe 5 steps described in “What the DKIM-Signature header must contain”, in order.1Parse the full DKIM-Signature header during inbox-placement tests —MailTester processes the raw header from the received email, not just asummary. This includes all parameters, including 'b='. Only by examiningthe complete header can you detect if any required element is absent.2Validate the presence and syntax of the 'b=' parameter — The field mustexist and start with 'b=' followed by a base64 string. If it’s empty(e.g., 'b=') or malformed (e.g., 'b=abc!123'), the signature fails.3Flag 'b=' as missing even with valid DNS — A correct DKIM TXT recordensures public key availability, but doesn’t guarantee the 'b=' fieldwas added during sending. MailTester detects this mismatch: valid DNS,invalid signature.4Record result as "DKIM=permited with missing b=" — This verdict meansthe server accepted the DKIM check, but the signature failed due toabsence or corruption of the 'b=' field. It’s a common cause of deliveryissues.5Use this to triage deliverability problems — If you see this error inMailTester’s inbox-placement report, your mail server or integration islikely omitting the signature payload during the signing process. Checkyour email client, SMTP gateway, or email API for misconfigurations.
The 5 steps described in “What the DKIM-Signature header must contain”, in order.

Common causes and fixes

This issue usually stems from one of three things: incomplete signing logic, misconfigured email middleware, or a forgotten step in a custom sending pipeline. You’re not alone—many developers skip validating that 'b=' is emitted when building from scratch. Use MailTester’s inbox placement test to see this error in action before sending to real recipients.

For teams using third-party tools like Mailchimp or SendGrid, verify that DKIM is enabled and signed at the outbound level. Even with DKIM enabled, some providers may skip the 'b=' field if the message body is malformed or truncated. Make sure your content is fully processed and that no step strips required fields from the header.

For developers integrating SMTP, test your signing process with real headers. The MailTester API can validate individual addresses and trace header issues in real-time during development.

Common causes of missing 'b=' in DKIM-signed emails

Missing the b= tag in DKIM signatures usually means the signature body hash wasn’t generated during message processing—often due to MTA misconfiguration, template interference, or intermediary services stripping headers. The b= value is required for DKIM validation, and its absence means the signature fails, harming sender reputation and inbox placement. Let's break down the common culprits.

Mail server or relay issues

  • Some SMTP relays or email service providers (ESPs) don't properly inject DKIM signatures during message transfer, especially when routing through third-party gateways. This often happens in shared hosting environments or when using cloud-based email forwarding.
  • Let’s say you’re using an MTA like Postfix or Exim but forgot to enable DKIM signing in the configuration—no b= will appear. Always verify that signing is enabled in your MTA’s DKIM module and that the signing key is correctly loaded.

Template or automation tool interference

  • Marketing platforms such as Mailchimp, HubSpot, or Klaviyo can strip or overwrite DKIM header fields during email rendering, especially with dynamic content or template merge tags. Even if DKIM is added at the server level, the final rendered message may lose the signature.
  • When templates are processed server-side, some systems apply content sanitization that removes or alters headers—this includes DKIM-related fields. Check your automation tool’s documentation for DKIM compatibility and testing options.
  • Solutions like inbox placement testing can help simulate real-world delivery and reveal whether DKIM is preserved end-to-end.

Proxy or forward services

  • Forwarding services like Gmail, Yahoo, or third-party email proxies may alter or remove DKIM headers when rewriting message content or adding headers for tracking. These services don’t re-sign messages after modification, breaking DKIM validation.
  • Use of email aggregation tools or shared inbox platforms often results in signature loss. Always check if your email is re-signed after being passed through such systems.

Verification and diagnostics

  • Use a tool like MailTester’s email checker to verify if an address is valid and if the signature is properly formatted after delivery.
  • Check the raw email headers (via tools like MXToolbox or RFC 6376) to confirm if the b= tag appears and matches the signed body.
  • A missing b= is a hard failure in DKIM validation. Even with valid d= and s=, the signature won’t pass without it. Always test with real-world deliveries and header analysis.

How to verify and fix your DKIM configuration

You’re seeing "DKIM=permited with missing b=" because your email is being flagged as passing DKIM policy, but the signature header is incomplete—no b= parameter is present. This means your signing service published the record, but failed to inject the required cryptographic signature. Let's walk through how to catch and fix it.

Check Your DNS Record First

Start by confirming your DKIM DNS record is published and correctly formatted. Use a tool like MxToolbox or DNSChecker to look up your domain’s TXT record using your selector (e.g., selector1._domainkey.example.com). The record must match your provider’s instructions and contain a valid dkim=rsa or dkim=rsa256 tag. A missing or malformed record is a common source of failure.

  1. Verify DNS record publishing Use MxToolbox or DNSChecker to query your DKIM selector. If the record doesn’t appear, your domain’s DNS isn’t updated or your provider isn’t publishing it. Wait 5–10 minutes after changes and retry. DNS propagation delays are common.
  2. Confirm full DKIM-Signature header is present Open an actual email (from your server or sending platform) and check the raw headers. The DKIM-Signature header must include a b= parameter with a valid base64-encoded digest. If b= is missing or empty, the signature wasn’t generated. This indicates a misconfiguration in your mail server or third-party provider.
  3. Check third-party service settings If you use SendGrid, Mailchimp, or HubSpot, log into the platform and confirm DKIM is explicitly enabled and not being overridden by templates. Some systems disable signing for certain transactional emails or when using legacy templates. Check the documentation for your chosen service—many require manual key setup and verification.
  4. Re-test with live delivery simulation Use a real-time verification API like MailTester’s API to send a test email to a verified address. The API validates not just deliverability, but also header integrity. It checks for missing b= signatures and reports exactly what’s failing, including whether DKIM is signed, and if the b= value is present and valid.

Why It Matters

Even if DKIM passes policy, a missing b= means the signature is not cryptographically valid. Mail servers may accept such emails (hence "permited"), but ISPs and inbox filters increasingly reject them, seeing them as weak or spoofable. The fix isn’t just compliance—it ensures your messages land in inboxes, not junk folders.

Once you confirm your DNS record is correct and your mailing system includes a proper b= value in every outbound email header, test again with a tool like MailTester’s Inbox Placement test to validate real-world delivery. This catches issues before they impact your campaign performance.

What MailTester reveals about sender reputation and authentication

You’re not just verifying email addresses—you’re auditing your sender reputation in real delivery conditions. MailTester checks not only if SPF, DKIM, and DMARC are configured, but whether they actually apply to the message as it’s sent. A 'DKIM=permited with missing b=' flag means the key is valid but the signature wasn’t properly applied in the message flow—indicating a flaw in your sending infrastructure. Catching this early prevents reputation damage from repeated failed deliveries.

Behind the scenes: how verification reveals delivery truths

Most tools only check DNS records or syntax. MailTester goes further by analyzing the full message header in the context of real inbox placement tests. It simulates actual sending conditions, so you see not just if a record exists, but if it's being used correctly during delivery. This level of visibility is rare—few services inspect the b= tag value within the DKIM signature itself.

When DKIM reports permited but the b= value is missing, it reveals a gap between setup and execution. The domain may have published a valid DKIM key, but the sending system failed to sign the message correctly. That’s not a DNS issue—it’s a configuration or code-level issue in your email service provider, marketing tool, or internal email gateway.

Fix what matters: root causes and next steps

Common causes include misconfigured templates, delayed or missing signature generation, or third-party tools stripping headers during relay. The fix isn’t just updating a DNS record—it’s auditing how the email is constructed before it leaves your system. Tools like inbox placement testers can spot these failures before they hit inboxes.

According to RFC 6376, the b= tag is required for the DKIM signature to be valid. Without it, receivers cannot verify authenticity. While some systems treat missing b= as a soft failure, consistent occurrence can be flagged by senders like Google and Yahoo as a red flag. Over time, this degrades sender reputation and increases the risk of inbox filtering.

Let’s be clear: a valid DNS record does not equal valid delivery. A single missing b= tag can undermine your entire authentication stack. Use MailTester to find these hidden flaws before they cost you engagement, reputation, or deliverability. It’s not about checking boxes—it’s about ensuring each message behaves responsibly in the real world.

How to use MailTester’s API for real-time DKIM validation

You can use MailTester’s real-time verification API to catch incomplete DKIM signatures—like missing b=—before emails are sent. The API returns structured data showing whether DKIM is valid, permited, or invalid, including explicit flags for missing components. By integrating it into your sending workflow, you prevent malformed messages from being delivered, which helps reduce bounces and protects sender reputation.

Set up the API integration

  1. Register and get your API key at MailTester’s API dashboard. You’ll receive a secure key to authenticate requests. This step is required for all automated checks.
  2. Send a verification request with the email address and domain. Include the full email header (e.g., From:, To:, Subject:) when possible. The API uses this to check DKIM alignment and signature completeness.
  3. Parse the response fields. Look for dkim_status and dkim_result. A status of permited with a missing_b= flag indicates the signature exists but lacks the critical b= component, which is required by DKIM specifications.

Automate checks in your workflows

Let’s say you’re using SendGrid, Klaviyo, HubSpot, or Mailchimp. You can trigger the MailTester API in real time when a new contact is added or when a campaign is about to send.

  • Use webhooks in SendGrid or a zap in Zapier to call MailTester’s API before sending.
  • Check the dkim_result field for missing_b. If present, block the send and log the issue.
  • Feed valid results back into your platform to keep your list clean and ensure message integrity.

DKIM is designed to verify that email content hasn’t been tampered with. A missing b= field means the signature can’t be validated at all, which may lead to inboxing issues—even if the domain has valid SPF and DMARC. According to RFC 6376, the b= field is mandatory in a valid DKIM signature.

By validating DKIM completeness in real time, you catch the problem early. This prevents emails from being rejected or marked as spam due to technical flaws in the header, even when other authentication mechanisms are properly configured.

You can test individual addresses with MailTester’s email checker to manually validate the same data. For larger campaigns, bulk verification ensures all DKIM signatures are intact before launch.

Why list hygiene matters when DKIM is flawed

DKIM=permited with missing b= signals a valid signature exists but lacks the required cryptographic body hash. This often happens when an email list contains outdated or poorly managed addresses—especially older ones that were once valid but now trigger anomalies in delivery chains. Even with proper DKIM setup, bad addresses can cause false positives or routing errors that impact sender reputation. Regular list hygiene using tools like MailTester’s bulk verification helps catch these edge cases early, reducing the risk of misaligned authentication signals.

How stale or malformed addresses break DKIM alignment

Let’s be clear: DKIM isn’t just about signing headers. It relies on a precise delivery path where the original content matches the signed body hash (the b= tag). If an address has been orphaned or is bouncing through a misconfigured relay, the body may change — even subtly — leading to a valid signature but no b= value. This triggers a DKIM=permited with missing b= result, which email providers treat as suspicious or ambiguous.

These issues aren’t always due to poor configuration. In fact, even well-configured domains can fail if the underlying list includes addresses that were once valid but now live in broken delivery loops. For example, catch-all or role-based accounts (like info@ or admin@) often lack real content verification and may receive messages in unpredictable states. Over time, this degrades deliverability, even with correct SPF, DKIM, and DMARC.

Preventing issues with proactive list hygiene

Think of list hygiene not as a checkbox, but as an ongoing defense. An old address might return a valid delivery status, but still cause DKIM anomalies if it’s routed through outdated or non-compliant systems. This is why automated checks are essential. Tools like MailTester’s bulk verification catch these edge cases before you send—filtering out invalid, risky, or malformed email addresses that could otherwise trigger authentication issues.

Using MailTester’s real-time verification API (API) or checking individual addresses via the email checker helps ensure every send starts with a clean slate. This level of scrutiny aligns with email standards outlined in RFC 6376, which defines how DKIM signatures should be validated. The bottom line: clean data beats perfect configuration when the list itself drives the problem.

A note on accuracy: how MailTester ensures reliable detection

You get 98.9% accuracy because MailTester doesn’t just check DNS records or look for syntax— it simulates real email delivery by testing against active mail servers. This means a "DKIM=permited with missing b=" result isn’t a guess based on configuration alone; it reflects actual behavior when an email hits a live inbox. The system learns from real-world traffic patterns to distinguish between valid, deliverable addresses and those that appear correct on paper but fail in practice.

Why static checks aren’t enough

Many tools scan DNS records and report on DKIM, SPF, or MX configuration. But a valid DNS record doesn’t guarantee deliverability. A domain might pass all technical checks, yet still fail in the real world due to greylisting, temporary failures, or server-side filtering. MailTester avoids this trap by not stopping at static validation. Instead, it sends real test messages through real mail servers—just like a real sender would—then observes how the server responds.

Learning from real email traffic

Accuracy isn’t set in stone. MailTester continuously calibrates its detection logic by analyzing billions of real email transactions, separating known-good addresses from known-bad ones. For example, if a domain consistently returns a "pass" for DKIM but the underlying message never reaches the inbox, the system logs that inconsistency. Over time, this feedback loop helps refine predictions—especially for edge cases like "DKIM=permited with missing b=", which often indicates a legitimate but incomplete signature.

It’s not magic. The high accuracy comes from consistent testing against real mail servers, not hypothetical scenarios. The system accounts for transient issues like temporary server delays or anti-spam rules that block delivery even when technical checks pass. If you’re relying on email verification for campaign success, you want real-world results—not a checkmark on a DNS config.

For testing your list in realistic inbox conditions, try inbox placement testing, or use our bulk verification tool to assess entire lists with the same level of real-server validation. You’re not just checking syntax—you’re simulating actual delivery. That’s how you get accurate, actionable results.

Conclusion: Fix DKIM mismatches proactively

A 'DKIM=permited with missing b=' flag is not a false positive. It indicates that while your DKIM signature is technically valid, the required signature body (b=) is absent in the actual email — a gap that undermines authentication integrity.

This mismatch often stems from misconfigured mail servers, template rendering failures, or missing signing logic in automated email workflows. Left unaddressed, it weakens sender trust and increases the risk of inbox filtering or rejection over time.

Use MailTester’s inbox-placement tests and real-time API to identify these issues before they impact deliverability. Proactively fixing the root causes — such as validating mail server configurations or reviewing template output — improves both compliance and inbox placement.

Sources

Keep reading

Ready to put this into practice? MailTester verifies emails with 98.9% accuracy — start with 100 free verifications.

Frequently asked questions

What does DKIM=permited mean?

DKIM=permited means the domain’s DNS record for DKIM is present and valid, and the signature checks out against the public key.

Can an email pass DKIM validation with no 'b=' field?

No — DKIM requires a 'b=' field with a base64-encoded signature. Without it, the message fails authentication, even if the DNS record is correct.

Why does MailTester detect DKIM=permited but no 'b='?

MailTester analyzes the full email header during inbox simulation. If the DKIM-Signature header exists but lacks a 'b=' parameter, it reports this as a validation gap.

Does a missing 'b=' field mean my DKIM is broken?

Yes — even if the record is published, a missing 'b=' field prevents the email from being cryptographically signed, making it unverifiable by receiving servers.

How do I know if my mail server includes the 'b=' field?

Check the raw email header from the final sent message. Look for the DKIM-Signature line and confirm it contains 'b=' followed by a base64 string.

Can template tools remove the DKIM signature?

Yes — some email builders and automation platforms strip or override DKIM headers during personalization or dynamic content insertion.

Does MailTester support bulk checks for DKIM issues?

Yes — use MailTester’s bulk list verification to scan multiple addresses and identify patterns of authentication failure, including missing 'b=' fields.

How does MailTester’s AI assistant help with DKIM problems?

The in-app AI assistant interprets verification results, like 'DKIM=permited with missing b=', and suggests actionable fixes based on common causes and delivery patterns.

Can DKIM pass with an incorrect signature?

No — if the 'b=' value is wrong or malformed, the receiving server cannot verify the signature, and DKIM fails regardless of DNS record validity.

Is 'DKIM=permited with missing b=' a common issue?

It is common in systems with partial DKIM implementation, especially when tools or templates fail to inject the signature during message creation.

Do I need to re-sign all past emails if 'b=' was missing?

No — focus on fixing current and future sends. Past messages with missing 'b=' cannot be corrected retroactively.

How does sender reputation suffer from missing 'b='?

Repeated failures in DKIM validation reduce sender reputation over time, increasing the likelihood of inbox filtering or blocklisting.