I Sent 50 Emails And Got 12 Bounces. SMTP 250 Failed Me.
api, #cybersecurity, #webdev, #python On July 15 I queued a campaign to fifty addresses I had already "verified" with a plain SMTP handshake. Every single one returned 250 OK . Three hours later, twelve of them bounced. That's a 24% failure rate in 38 minutes on addresses that looked perfectly healthy in the logs. The code that reproduces the failure is on GitHub . This time I wanted to know what…
On July 15, the author queued a campaign to send 50 emails to verified addresses using a plain SMTP handshake. To their surprise, every single one of those emails returned a 250 OK response, indicating successful delivery, despite the addresses appearing healthy in the logs. Three hours later, the author found that twelve of those emails had bounced, resulting in a 24% failure rate in just 38 minutes.
Curious about the cause of this unexpected failure, the author decided to run the same list through a more comprehensive email validator. The validator examines various factors such as MX behavior, breach history, role-account flags, and provider identity. The validation process for test@gmail.com provided some unsettling results. The request to validate the email was made using a GET request, with headers including the RapidAPI key and host.
The response from the validator indicated that the email was valid in terms of syntax and had an MX record found. However, it was marked as an is_role address, specifically a test email account. The email was classified as a disposable email, which likely contributed to its bounce. Additionally, the email had a breach history, with 579 recorded breaches, including exposures of email addresses, passwords, and various other data classes.
The author concluded that the SMTP handshake had failed to reveal these issues, as the SMTP_varified field in the validator's response was null. This incident highlights the importance of using robust email validation methods beyond simple SMTP checks to ensure reliable email delivery and avoid potential issues.
Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.