Every SMTP command gets a reply with 3 digits. Your MTA (Mail Transfer Agent) reads that code to decide what to do next. The first digit tells you almost everything:
- 2xx: success. Move to the next step.
- 3xx: accepted, but something is missing. After
DATA, a354means "send the message body". - 4xx: temporary failure. Keep the email in the queue and try again later.
- 5xx: permanent failure. Do not repeat the same request.
The classic confusion is 3xx vs 4xx. A 3xx means the conversation is moving forward. A 4xx means "not now".
Many servers also send an extended code, like 550 5.1.1:
-
5: permanent failure -
.1: address problem -
.1: the mailbox does not exist
One more detail: a 250 does not prove the email reached the inbox. It means the server accepted the message. It can still land in spam.
Which SMTP code has given you the most trouble?



