554
SMTPERRORCommonDelivery FailureHIGH confidence

Transaction failed

What this means

The 554 code is a generic, permanent failure message indicating the transaction failed. It is often used when a message is rejected for policy reasons, such as failing a spam filter.

Why it happens
  1. 1The sender's IP address is on a blocklist (RBL).
  2. 2The email content triggered a spam filter.
  3. 3The recipient's server policy does not allow messages from the sender's domain (e.g., missing SPF/DKIM records).
How to reproduce

An automated system sends an email that is flagged as spam by the receiving server.

trigger — this will error
trigger — this will error
DATA
354 Go ahead
[...]
.
554 5.7.1 Service unavailable; Client host [x.x.x.x] blocked using zen.spamhaus.org

expected output

554 Transaction failed

Fix 1

Check IP Reputation

WHEN You operate the sending mail server

Check IP Reputation
// Use online tools to check if your IP is on any blacklists
checkBlacklists("your.server.ip.address");

Why this works

If your server's IP is on a blacklist, you must request delisting to ensure mail delivery.

Fix 2

Configure SPF and DKIM

WHEN You control the sending domain

Configure SPF and DKIM
// Add SPF and DKIM records to your domain's DNS settings
// SPF: "v=spf1 mx -all"
// DKIM: "v=DKIM1; k=rsa; p=..."

Why this works

These records prove that you are a legitimate sender for your domain, reducing the chances of being flagged as spam.

What not to do

Immediately retry sending

A 554 is a hard bounce, often due to a reputation or policy issue. Retrying without fixing the underlying problem will fail and can further damage your sender reputation.

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All SMTP errors