The importance of verifying an email address and not just validating its format
A user who registers on your website and types a typo on his address will not understand why he does not receive a confirmation email and will abandon his registration thinking that your site is faulty.
Even worse, if you periodically send messages to mailing lists that contain email addresses that do not exist, they will bounce back, and your domain name will end up being considered a spam domain and receive penalties, which will ruin the deliverability of all your emails.
Therefore, verifying an email address is essential to improve the success rates of all things related to your users' email addresses and improve your business.
Is it necessary to check the email addresses once or regularly?
But what about historical data? After some time, users may delete their mailboxes, email services may get closed, and the emails in your database could become invalid.
You may consider that having invalid email addresses in your database is not an issue, but you will observe that the rate of invalid emails will increase over time. The direct consequence is that all your informational or promotional mailings will have a higher proportion of bouncebacks, and that's something you should be concerned about. Your emails may also have a very low open rate because they're being sent to free or disposable emails addresses.
How to validate and verify an email address
The validation of an email address must be limited to a minimum set of rules. According to the RCF 2822, the email box's name (before the @) can contain any characters, including spaces. On the other hand, concerning the domain name (after the @), it is enough to ensure a dot's presence.
Here is a regular expression that is sufficient to validate the format of an email address:
In terms of verification, however, a much more complex system is required. The verification script must verify that the domain name exists. It must also query the DNS records and check that it contains MX fields, which indicate the domain's email servers' addresses. And from these addresses, check that the SMTP servers exist and are working. Implementing such a system by yourself could be a waste of your time, especially knowing there is an efficient and free web service that does all this.
How to painlessly validate and verify an email address.
Abstract provides a free email address validation API service.
The service is fast and can be queried using a simple GET request. Abstract checks the email address format, the domain configuration, and the presence of an SMTP server. It will also detect if the email address is provided by a disposable email service, which is a good thing to know before accepting a user account creation.
The documentation is clear and precise, and you will be ready to use the API in seconds.
Here is an example of a JSON response:
What is email bounceback, and what does it mean for your business?
A bounceback email is simply an email message that cannot be delivered to the recipient. The most common reason for this kind of error is that the recipient's mailbox does not exist.
But bouncebacks have a significant impact on your business: more emails will be sent back to your servers, more the reputation of your domain names and IP addresses used by your servers will suffer. There are regulations on the Internet that combat email spam, and the bounceback rate is one of their metrics.
If you do nothing about bounceback, your mail servers could be flagged as spam servers, and they would be blacklisted from a vast number of mail servers, which would ruin your emails' deliverability.
How do you keep a database of email addresses always up to date?
You should regularly check all the email addresses in your database. It is however unthinkable to send a verification link once a month to your users, as you did at the registration time. It is necessary to do this verification by other means.
The smart solution is to regularly pass your email addresses through an email validation API to ensure that the SMTP configuration corresponding to the email address is still correct. Abstract provides a free API that can do just that and is very easy to use, although there are many email validation and verification API's. The Abstract API can be used by any language capable of making a GET request on the Internet. Here is an example that you can use directly in your browser: Abstract also includes other APIs, such as the company enrichment API.
https://emailvalidation.abstractapi.com/v1/?api_key=YOU_API_KEY&email=johnsmith@gmail.com
And here is the response: