Anyone who processes data understands the need to validate it upon user input. A basic validation ensures that the data is not empty and within the expected length, and verifies the format. This last point is only necessary for certain data categories, such as date and time, telephone numbers, and of course, email addresses.
To perform a more advanced validation, it is necessary to differentiate the terms validate and verify. For an email address, verifying is making sure that the email address exists and it corresponds to a mailbox hosted on a correctly configured server.
To understand the necessity of the verification, take a single example: the email address firstname.lastname@example.org will pass the validation in terms of length and format, but, likely, it will not pass the verification because no mailbox exists with this address.
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.
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.
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.
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: