SMTP 354 Start Mail Input vs 521 Host Does Not Accept Mail
SMTP 354 (Start Mail Input) is a 3xx Positive Intermediate response, while 521 (Host Does Not Accept Mail) is a 5xx Permanent Negative response. 354 indicates that the server is ready to receive the message body. The client should begin sending the email content (headers and body) and terminate with a single line containing only a period (CRLF.CRLF). In contrast, 521 means that the host does not accept mail at all. This indicates the server exists but is explicitly configured to reject all incoming email messages.
Description
The server is ready to receive the message body. The client should begin sending the email content (headers and body) and terminate with a single line containing only a period (CRLF.CRLF).
When You See It
After sending the DATA command. The server is now waiting for you to type or stream the email message, ending with a dot on its own line.
How to Fix
Send your message content followed by a line with just a period (.) to signal the end. If you get an error after this, check that your message does not contain a bare period on a line by itself within the body.
Description
The host does not accept mail at all. This indicates the server exists but is explicitly configured to reject all incoming email messages.
When You See It
When connecting to a server that has been intentionally configured to refuse all email, such as a domain that only sends but never receives mail.
How to Fix
Verify you are connecting to the correct mail server by checking the domain's MX records. If the domain truly does not accept mail, contact the recipient through an alternative channel.
Key Differences
354 is a 3xx Positive Intermediate response, while 521 is a 5xx Permanent Negative response.
SMTP 354: The server is ready to receive the message body. The client should begin sending the email content (headers and body) and terminate with a single line containing only a period (CRLF.CRLF).
SMTP 521: The host does not accept mail at all. This indicates the server exists but is explicitly configured to reject all incoming email messages.
You encounter 354 when after sending the DATA command. The server is now waiting for you to type or stream the email message, ending with a dot on its own line.
You encounter 521 when when connecting to a server that has been intentionally configured to refuse all email, such as a domain that only sends but never receives mail.
When to Use Which
For 354 (Start Mail Input): Send your message content followed by a line with just a period (.) to signal the end. If you get an error after this, check that your message does not contain a bare period on a line by itself within the body. For 521 (Host Does Not Accept Mail): Verify you are connecting to the correct mail server by checking the domain's MX records. If the domain truly does not accept mail, contact the recipient through an alternative channel.