All posts

554 5.6.0 "Email Message Is Malformed": Find the Broken Header or MIME Part

··2 min read

554 5.6.0 means the receiving server rejected the message because its structure or content is malformed. Gmail's text is "Email message is malformed. Not accepted." Other servers say things like "Message contains invalid header." The fault is in how the message was built, not in the address.

The 554 5.6.0 code page has the summary.

Reading the code

Part Value Meaning
Reply code 554 Transaction failed
Class 5 Permanent failure
Subject 6 Message content or media status
Detail 0 Other or undefined media error

RFC 3463 defines the X.6 subject for problems with the message itself, as opposed to the address (X.1) or the mailbox (X.2).

Common causes

  • Broken MIME structure, such as a missing boundary or bad encoding.
  • Duplicate or invalid headers, for example two From headers.
  • Non-ASCII characters in headers without proper encoding.
  • A buggy template engine or mail library that builds the message.

How to find the fault

  1. Send a test to yourself with the same template and look at the raw source of what arrives.
  2. Read the headers with the email header analyzer. Duplicates and odd ordering stand out.
  3. Check merge fields. An empty field in a header, such as a blank subject or a name with a line break, can break the message. Fix garbled characters in a CSV covers one common source.
  4. Update or switch the library that builds your messages.
  5. Encode non-ASCII header values properly.

What to do with the recipient

Nothing. Do not remove the address. Fix the message and resend. If your tool suppressed the address after the bounce, release it again: release a hard bounce from suppression.

Why this one is easy to misread

A permanent code makes tools mark the address as a hard bounce, so a template fault can quietly empty a list. If a whole segment bounces with 5.6.0 on the same send, look at the message, not the list. Find which domains cause your email bounces helps tell the two apart.

Keep the address side clean

This code does not come from your list, but every bounce still counts against your sending reputation, so the addresses you do send to should be real. Upload your list on the verify page: the first 100 email checks are free with a Google sign-in, no card. Each address comes back valid, risky or invalid with a reason such as "Mailbox not found" or "Accepts all addresses", and nothing is sent to anyone on the list. For larger or recurring lists, see bulk email verification, list cleaning and pricing.

Common questions

What does 554 5.6.0 mean?

The receiving server rejected the message because its content or structure is malformed. RFC 3463 covers X.6.0 as other or undefined media error, and Gmail returns Email message is malformed. Not accepted.

Is 554 5.6.0 a hard bounce?

It is a permanent rejection of that message. The fault is in how the message was built, so fix it and resend to the same recipient.

What usually causes it?

Broken MIME structure such as a missing boundary, duplicate headers such as two From headers, non-ASCII characters in headers without encoding, or a buggy template engine or mail library.

Should I suppress the address?

No. The address is fine, and list verification does not change a message-building problem.

Check your list before you send

Real mailbox checks over SMTP, and nothing is sent to the address. Sign in with Google and your first 100 email checks are free, no card. Plans for bigger lists are on the pricing page.