How we verify email addresses

How we verify email addresses

https://www.producthunt.com/posts/email-verification-for-google-sheets

SMTP Servers

Verifying the deliverability of an email address isn't the most complicated thing out there. In fact, the process we take to verify an address is really only half that of sending a standard email transmission. The tricky part of email verification that we specialize in is more in handling it at scale and being capable of processing large verification request loads in a short period of time. There are many challenges associated with hosting a service such as our own and that is primarily what we charge for. Regardless of your use case, the email verification process relies almost entirely on the heart of it all, the SMTP server - without it we have very few ways of retrieving any metadata/context related to a particular address.

Catch-Alls

The first thing we do when an email verification request enters our system is check to see if it belongs to a domain that has already been considered a catch-all domain. Yahoo.com for example, is a catch-all domain, which means that no matter what email address you try to contact on their server, you WILL NOT receive a hard bounced email. Of course, mail providers always have the option of replying with a soft-bounced email response based on source recipients found in their catch-all inbox but this wouldn't be considered a failed transmission. In the end, a catch-all server will accept all emails transmissions.

The Process

The process is fairly straightforward and outlined below. As you can see we first form a connection to the mail server with a basic TCP connection on port 25. We then identify ourselves as example.com and a reply-to email of testing@example.com. The last step, and the most important in this process is the RCPT command. This is where, based on the response from the mail server, we are able to conclude the deliverability of a given email address. A 200 implies a valid inbox and anything else implies either an error with our connection to the mail server, or a problem with the address requested. A full outline of all the status codes we parse can be found here.

telnet mail.abccorp.com 25

HELO example.com

MAIL FROM: testing@example.com

RCPT TO: your_email@somedomain.com

RCPT TO: another_email@somedomain.com

In more cases than not we can specify multiple RCPT addresses so in the same TCP connection so we often take advantage of long-running connection pools to SMTP servers for subsequent verification requests on the same domain. By using the same connection for subsequent requests we help to reduct response times from our service and/or increase your workflow/ui speed!

Where we come in

Now, take everything we've stated above, add some concurrency, multi-node load balancing, and some of the most efficient code we've ever written and you have one of the most powerful and resilient email verification platforms available today. We're always looking deeper and finding new ways to optimize our service in order to give you and your users a more streamlined and secure experience and we hope that you appreciate and take advantage of what we've built!

Report Page