How do you know if an email address is valid? There is more than one way to find out. In this article, we will show you how something we do – known as “ping testing” – makes these results much more accurate. More important, we will show you how to get the best out of these capabilities.
Email Verification 101
There are fundamentally three ways to make sure an email address is legitimate:
- Examine the email address itself for things like proper syntax, obvious misspellings (like “gmial” instead of “gmail”), and other problems (like missing “@” symbol).
- Compare this email address against lists of existing emails – both to see if it is a legitimate address, and also to flag known problem addresses such as spam traps, honeypots, known spammers, blacklisted addresses, and more.
- Physically test (or “ping”) the email server, domain and address to make sure the address is valid.
All three of these checks are important in their own way. Basic address testing quickly weeds out addresses that are clearly invalid, with fast response times. List testing is also quick but often isn’t enough, because of addresses that haven’t made the list yet. (According to a report from the Radicati Group, new email addresses get created at the rate of a quarter billion per year!)
Then there is “ping” testing, which involves checking the actual email server and address for a response, which is the gold standard for determining the validity of an address. It can also be important for applications such as fraud prevention, to guard against perpetrators who create email addresses in near-real time. There are three main types of ping checks:
- Testing an email server (STMP) to see if it is real and available.
- Testing to see if an email address is allowing emails at the domain (DNS) level.
- Testing to see if the address can reach an inbox.
Of course, Service Objects’ DOTS Email Validation service performs all of these checks. Now, let’s see how you can use them efficiently for your own email validation.
Here’s where you come in
Service Objects’ Email Validation capabilities give you a great deal of control over both performance levels and output tests. Here are some tips to get the most out of your email validation, taken from our developer guide:
To ping or not to ping: You can validate emails quickly – at the expense of possibly missing ping testing – by using our ValidateEmailFast operation. If a “ping” takes too long, it will not be considered in the check (and STMP data about this address will not be returned). However, be aware that this is a less accurate check.
Putting a lid on pinging. The amount of time a “ping” takes may vary widely, from nearly instant response to lengthy delays. If you are using email validation in a real-time application, or are concerned about response speed, the Timeout input variable is your friend. This value specifies how long the service is allowed to wait for all real-time network level checks to finish, such as STMP and DNS testing. Time is entered in milliseconds, with a minimum value of 200ms.
Email servers can be slow to respond to ping checks, and one of the most important aspects is how long you are willing to wait for a response. If you only wait a second or two – and you fail emails that do not respond in that time – you will get a lot of false negatives. If you can wait and/or update the results based on latent responses, you will get a more accurate verification. If real-time responses are a priority, we recommend setting up a two-step verification process, to help mitigate slow email server response times and ensure a quality user experience.
Two-step validation. The initial step will validate the email address using real-time syntax and ping testing. Syntax issues and fast-responding email servers will provide accurate feedback, so issues can be flagged in real-time. This allows for real-time notification of any issues, enabling user corrections before being captured by your application or CRM. The amount of time you are willing to wait should be considered in your user’s experience.
The second step is to accommodate slow-responding email servers that ‘timed-out’ in the initial step. When capturing the email address to your database, include a Yes/No flag of whether the email validation timed-out before completing validation. For those email addresses that timed-out, you can validate them again but with a much longer Timeout setting, allowing slower email servers time to respond and ensuring the email address has been fully validated.
Pinging isn’t perfect. Sometimes a non-existent address will still “ping” properly. Why? Because some email domains are “catch-all” domains, meaning that their servers will accept mail to any address within that domain. You can test for this using the IsCatchAllDomain output variable that comes back with your results.
Finally, remember that ping testing is not the only factor in effective email validation. Our developer guide has a wealth of tools you can use as part of your specific use case, ranging from optional email address correction to warning codes for bogus, vulgar or disposable email addresses. Check it out, or better yet, “ping” our friendly support team for expert advice. We’re always glad to help!