Error reference
Every error InboxGrade reports has a dedicated page explaining what it means, why it happened, and exactly how to fix it. 49 entries and growing.
DMARC errors
- dmarc-policy-reject-no-alignment DMARC reject: no alignmentCritical impact
Your DMARC policy is `p=reject` and neither SPF nor DKIM alignment passed. Receivers are instructed to reject the message outright.
- dmarc-policy-quarantine DMARC quarantineHigh impact
Your DMARC policy is `p=quarantine`. Unaligned mail is being sent to Junk/Spam folders.
- dmarc-no-record DMARC: no record publishedMedium impact
Your domain has no DMARC record published. Receivers have no instructions on how to handle unauthenticated mail from your domain.
- dmarc-pct-less-than-100 DMARC pct= is less than 100Low impact
Your DMARC record contains a `pct=` value under 100, meaning your policy only applies to a fraction of mail.
- dmarc-missing-rua DMARC record missing rua= (no reports)Medium impact
Your DMARC policy is active, but you're not collecting aggregate reports. You have no visibility into who's failing alignment.
- dmarc-sp-not-set DMARC record missing sp= tag (subdomain policy)Medium impact
The DMARC record at the organizational domain omits the `sp=` tag, so subdomains fall back to the `p=` policy instead of a dedicated subdomain policy.
- dmarc-adkim-strict-failure DMARC strict DKIM alignment (adkim=s) failing on subdomainHigh impact
Mail passes DKIM but fails DMARC because the signing domain `d=` does not exactly match the `From:` header domain required by `adkim=s`.
DKIM errors
- dkim-signature-invalid DKIM signature invalidHigh impact
Your DKIM signature is present but failed verification — the message was modified in transit or your signing config is broken.
- dkim-no-signature DKIM: no signature foundHigh impact
Your email landed with no DKIM signature header at all. Your sending server isn't signing outbound mail.
- dkim-selector-not-found DKIM: selector record not foundHigh impact
The DKIM selector in your email's d= tag doesn't resolve to any DNS record. Receivers can't fetch the public key to verify your signature.
- dkim-key-too-short DKIM key too short (<1024 bits)Medium impact
Your DKIM public key is shorter than 1024 bits. Modern receivers reject or ignore signatures below this threshold.
- dkim-body-hash-mismatch DKIM body hash mismatchHigh impact
The DKIM body hash in your signature doesn't match the body as received. Something modified the message after signing.
- dkim-expired-signature DKIM signature expiredMedium impact
Your DKIM signature contains an x= tag with a timestamp in the past. Receivers reject expired signatures.
- dkim-domain-mismatch DKIM signing domain does not match From domain (alignment fail)High impact
The DKIM `d=` tag identifies a domain that does not align with the `From:` header domain, so DMARC cannot pass via DKIM even though the signature itself verifies.
- dkim-wrong-canonicalization DKIM canonicalization issue (simple vs relaxed)Medium impact
The DKIM signature was generated with `simple` canonicalization, so any whitespace or header change by a relaying MTA invalidates the signature.
SPF errors
- spf-permerror-too-many-dns-lookups SPF PermError: too many DNS lookupsMedium impact
Your SPF record requires more than 10 DNS lookups to evaluate. The receiver stops processing and marks your mail as PermError.
- spf-fail-sender-not-authorized SPF Fail: sender not authorizedHigh impact
The sending IP address is not listed in your SPF record. Receivers treat the message as unauthorized.
- spf-softfail SPF SoftFailMedium impact
Your SPF record ends in `~all` (soft fail). The sender isn't authorized, but the receiver is being told to accept the mail anyway.
- spf-redirect-loop SPF redirect loopHigh impact
Your SPF record contains a redirect= chain that loops back to itself, directly or through nested includes.
- spf-neutral SPF Neutral (?all)Low impact
Your SPF record ends in `?all`, which explicitly tells receivers 'no opinion' on unauthorized senders.
- spf-null-record SPF record is empty or malformedHigh impact
An SPF TXT record exists on the sending domain but contains no valid mechanisms, has syntax errors, or omits the required `v=spf1` version tag.
- spf-void-lookup SPF Void Lookup Limit exceeded (2+ NXDOMAIN responses)Medium impact
More than two DNS lookups during SPF evaluation returned NXDOMAIN or an empty answer, which RFC 7208 Section 4.6.4 permits receivers to treat as `PermError`.
- spf-ptr-mechanism SPF record uses deprecated ptr: mechanismLow impact
The domain's SPF record contains the `ptr` mechanism, which RFC 7208 explicitly deprecates and instructs publishers not to use.
Blacklist listings
- listed-on-spamhaus-sbl Listed on Spamhaus SBLCritical impact
Your sending IP is on the Spamhaus Blocklist (SBL). Major mail receivers will reject your mail outright.
- listed-on-sorbs-duhl Listed on SORBS DUHLHigh impact
Your IP is on the SORBS Dynamic User and Host List (DUHL), which lists residential and dynamic IPs that shouldn't be sending direct mail.
- listed-on-barracuda-rbl Listed on Barracuda RBLHigh impact
Your sending IP is on the Barracuda Reputation Block List. Barracuda appliances will reject or quarantine your mail.
- listed-on-barracuda-rbl-shared-ip Shared sending IP got listed on Barracuda RBLHigh impact
Your SMTP provider's shared IP pool is listed on Barracuda, affecting all customers on that IP — including you.
- listed-on-uribl A URL in your message is listed on URIBLHigh impact
A domain referenced inside your message body is on URIBL (URI blocklist). Your IP may be clean, but the content is flagged.
- listed-on-cbl Listed on Spamhaus CBL (Composite Blocking List)Critical impact
The sending IP is listed on the Spamhaus Composite Blocking List (CBL), indicating active infection or exploitation emitting spam, malware, or botnet traffic.
- listed-on-pbl Listed on Spamhaus PBL (Policy Block List)High impact
Your sending IP is in the Spamhaus Policy Block List, which flags address space the operator has declared should not deliver SMTP traffic directly to the public internet.
- listed-on-xbl Listed on Spamhaus XBL (Exploits Block List)Critical impact
Your sending IP is listed on the Spamhaus Exploits Block List because it is emitting traffic consistent with an open proxy, trojan, worm, or other compromised host.
- listed-on-sorbs-smtp Listed on SORBS SMTPHigh impact
Your sending IP is listed on the SORBS SMTP zone because it was observed operating as an open relay or otherwise misconfigured SMTP server.
- listed-on-mailspike Listed on Mailspike reputation listMedium impact
The sending IP appears on one of Mailspike's reputation zones (bl.mailspike.net or z.mailspike.net), indicating observed behavior that scores poorly against its traffic model.
- listed-on-truncate-rbl Listed on TRUNCATE RBLHigh impact
Your sending IP or netblock is listed on the TRUNCATE RBL (`truncate.gbudb.net`), which targets snowshoe operations and sources with no legitimate mail history.
TLS / Encryption
- tls-not-used TLS not negotiatedMedium impact
Your sending server didn't use TLS when connecting to the receiving MTA. Mail was transmitted in plaintext.
- tls-weak-cipher TLS version or cipher is weakMedium impact
Your mail server negotiated TLS 1.0, 1.1, or a weak cipher. Modern receivers accept the connection but downgrade trust.
- tls-cert-expired TLS certificate expired on sending serverHigh impact
The X.509 certificate presented by your SMTP server during `STARTTLS` is past its `notAfter` date, so receiving MTAs reject the handshake or fall back to cleartext.
- tls-cert-hostname-mismatch TLS certificate hostname does not match HELOMedium impact
The CN or SAN on the TLS certificate presented during STARTTLS does not match the hostname advertised in the SMTP `EHLO`/`HELO` command.
Sender reputation
- reverse-dns-missing Reverse DNS (PTR) missingMedium impact
Your sending IP has no reverse-DNS (PTR) record, or the record doesn't match your HELO/EHLO hostname.
- from-address-spoofed From address does not match envelope senderHigh impact
Your visible From: address differs from your envelope (Return-Path:) address in ways that look like spoofing to receivers.
- high-spam-score-htmlimageratio High spam score: HTML_IMAGE_RATIOMedium impact
SpamAssassin flagged your message because the ratio of images to text is too high — a classic spam signal.
- high-spam-score-missing-list-headers High spam score: MISSING_LIST_HEADERSMedium impact
Your bulk/newsletter email is missing List-Unsubscribe and List-ID headers. Receivers treat it as unsolicited bulk mail.
- reverse-dns-mismatch Reverse DNS does not match HELOMedium impact
Your PTR record and your HELO/EHLO hostname don't match. Receivers flag this as either misconfiguration or spoofing.
- ptr-generic-hostname PTR hostname is generic (cloud provider default)Low impact
Your IP has a PTR record, but it looks like a cloud provider default (ec2-X-X-X-X.compute.amazonaws.com). Receivers downgrade trust.
- bounce-code-550-5-7-1 SMTP 550 5.7.1 — message rejected due to local policyHigh impact
The receiving MTA rejected the message at the end-of-DATA stage because it violated a local policy covering sender reputation, authentication, or content.
- bounce-code-421-4-7-0 SMTP 421 4.7.0 — temporary rate limit (greylist/throttle)Medium impact
The receiving MTA has temporarily deferred your message with a `421 4.7.0` policy response, usually because sending rate, connection count, or sender reputation crossed a throttling threshold.
- bounce-code-552-exceeded-storage SMTP 552 — recipient mailbox exceeded storage quotaLow impact
The remote MTA rejected delivery with a `552` response because the recipient's mailbox is at or above its storage quota.
- open-relay-detected SMTP server is an open relayCritical impact
Your SMTP server accepts and forwards mail from unauthenticated external senders to arbitrary recipients.
- missing-message-id Missing or malformed Message-ID headerMedium impact
The message lacks a `Message-ID` header or contains one that does not conform to RFC 5322 syntax.