SMTP code 250 is the general-purpose success response used throughout the SMTP conversation. It confirms that the server accepted the previous command. You will see 250 after EHLO/HELO (listing server capabilities), after MAIL FROM (accepting the sender envelope address), after RCPT TO (accepting a recipient), and after the final dot in DATA (confirming the message was queued for delivery). Each 250 response at a different stage means something slightly different, but all indicate the command was processed without error.
The server recognized the client's greeting and responded with its capabilities (for EHLO) or a simple acknowledgment (for HELO). This is the normal second step in the SMTP handshake after the 220 banner.
After MAIL FROM or RCPT TO, 250 confirms the server will accept mail from the specified sender or to the specified recipient. The server has verified the address syntax and, in many cases, confirmed the mailbox exists.
The final 250 response after the message body (terminated by a lone dot on a line) confirms the server has accepted the message and queued it for delivery. The server typically includes a queue ID in this response.
After a RSET command, 250 confirms the current mail transaction has been aborted and the server is ready for a new MAIL FROM. This is used when a client needs to start over without disconnecting.
Connect manually and issue each command in sequence to see where 250 appears and where it does not. This identifies the exact point of failure in your mail flow.
openssl s_client -connect mail.example.com:587 -starttls smtp
If 250 is returned for MAIL FROM but delivery still fails later, check that the sending domain has correct MX records and a valid SPF record that authorizes the sending server.
dig TXT example.com +shortCheck DNS Records
The 250 response after DATA usually includes a queue ID (e.g., '250 2.0.0 OK queued as ABC123'). Use this ID to track the message through the server's mail logs if delivery does not complete.
The SMTP server is ready to begin a mail transaction and has announced its greeting banner.
The server is ready to receive the message body. End the message with a single dot on a line by itself.
The recipient's mailbox does not exist, or the server has permanently rejected the message due to policy.
The email address syntax is invalid or the mailbox name violates server naming rules.