← Blog/Deliverability

SMTP error 554 5.6.0: message content rejected

October 15, 2026·6 min read·By MailPilot

554 5.6.0 is a 5yz permanent failure paired with 5.6.0, which RFC 3463 defines under the

"message content or media" category — "other or undefined media error". The receiving server has

evaluated the message itself (not just the envelope or sender reputation) and rejected it based on

something about its content, structure, or attachments.

A real transcript

DATA
354 Start mail input
...
.
554 5.6.0 Message content rejected

Unlike reputation-based or authentication-based rejections, this one happens after the full

message body has been transmitted — the server accepted the DATA command and only rejected at

the final . once it had evaluated the content.

How the big three word content rejections

ProviderTypical wordingWhat it usually flags
Gmail / Google Workspace552 5.6.0 Message content rejected, message too large for this policy or a generic content blockSize or structural policy, combined with other signals
Microsoft 365550 5.6.0 ASN.1 encoding error or 554 5.6.0 Message content rejected due to malware scanMalformed MIME, or a malware/attachment-scanner hit
Yahoo / AOL554 5.6.0 Message not accepted for policy reasonsRarely gives attachment-level detail in the reply

Common causes

  1. Presence of spam-like content — phrasing, formatting, or link patterns that match known spam

signatures, even in a legitimate message.

  1. Unsupported attachments — an attachment type the receiving server blocks outright

(executables and certain archive formats are common blanket blocks).

  1. Improper email formatting — malformed MIME boundaries, broken HTML structure, or character

encoding the parser cannot handle.

  1. Email authentication issues — some providers fold a DMARC or DKIM failure into a

content-stage rejection rather than an earlier envelope-stage one.

  1. Blacklisted sending domain or IP — content filtering is often more aggressive for senders

that are already borderline on reputation, so a message that would pass from a clean sender gets

content-rejected from a flagged one.

These five causes rarely act alone in practice. A message with a borderline link density sent from

a domain with a slightly degraded reputation will often clear content filtering at one provider and

fail it at another, which is why the same template can work for weeks and then start failing

without any change on your end — the filter's threshold, not your content, moved.

Diagnose it yourself

  1. Validate your MIME structure by sending the exact message to a mailbox you control and

reading its raw source — a mismatched or duplicated boundary= string is one of the more common

silent causes of a content-stage rejection.

  1. Check the attachment's actual file type, not just its extension: `file --mime-type

attachment.ext` — some filters inspect the real content type and will flag a renamed executable

even if the extension looks benign.

  1. Run the message through a spam-score checker (several mail transfer agents expose a local

SpamAssassin instance) to see which rules it trips before it ever reaches the recipient.

  1. Check your own domain's authentication: dig TXT yourdomain.com +short for SPF and `dig TXT

_dmarc.yourdomain.com +short` for DMARC, since a borderline authentication state makes some

providers apply stricter content filtering.

The fix, in order

  1. Review and optimise email content — check for spam-trigger phrasing, excessive links or

image-to-text ratio, and all-caps subject lines or body text.

  1. Check and remove unsupported attachments — strip executable file types and uncommon archive

formats; link to hosted files instead where the attachment is not essential.

  1. Ensure proper email formatting — validate MIME structure and HTML, and confirm character

encoding is declared and consistent.

  1. Authenticate your email domain — confirm SPF, DKIM, and DMARC are passing and aligned, since

a borderline authentication state makes content filtering stricter.

  1. Monitor your domain reputation — a reputation check alongside the content review tells you

whether this is primarily a content problem or a reputation problem wearing a content-rejection

message.

What not to do

  • Do not resend the identical message — this is a permanent 5xx rejection of that specific

content; it will fail the same way again, to the same recipient, every time.

  • Do not assume the rejection text names the actual trigger precisely — content filters rarely

give a specific reason, and the fix usually requires reviewing the whole message, not just the

phrase quoted in the error.

  • Do not strip all links or formatting reflexively without reviewing what is actually in the

message — that can hurt legitimate functionality without addressing the real trigger, and a

heavily stripped-down message can itself read as suspicious to the same filters.

MailPilot's seed-inbox network measures real inbox placement per provider, which is the most

direct way to find out whether a specific message or template is triggering content-based filters

before you send it to your full list, rather than discovering it through a 554 5.6.0 after the

fact.

MailPilot

Ready to reach the inbox every time?

Automated email warmup across real peer mailboxes. Live inbox placement monitoring. Free 7-day trial - no credit card required.

Start free trial
Reach the Inbox, Every Time
Connect unlimited inboxes for warmup. Free 7-day trial, no credit card.
Try for Free
WORKS WITH
OZOHO
inbox placement99.2%
free trial7-day
companies trust us340+

Start for free - no credit card required.

Get started freeBook a demo