Inspiration

Imagine you're a owner, passionate about connecting with your customers through personalized email campaigns. However, you struggle with inaccurate email addresses and high bounce rates, which hinder your efforts to build meaningful relationships with your audience.

What it does

NilBounceEmailVerify is a email validation solution that employs a sophisticated combination of complex regex pattern checks, DNS checks, and SMTP server connect checks to determine the validity of an email address in real-time. Without the need to send an actual email, it provides quick and accurate results, saving time and resources for businesses.

First, it is employed with advanced regex pattern checks to analyze the syntax and format of the email address. It verifies if the email adheres to the correct structure, ensuring it contains the necessary components such as a username, "@" symbol, and domain.

Next, the solution performs DNS checks to validate the existence and availability of the email domain. By querying the domain's DNS records, it confirms whether the domain is valid and accessible, minimizing the chances of false positives or non-existent domains.

Additionally, we conduct SMTP server connect checks. It establishes a connection with the email domain's Simple Mail Transfer Protocol (SMTP) server to verify its responsiveness and availability. This step confirms that the domain's server is active and capable of receiving emails.

By combining these comprehensive checks, NilBounceEmailVerify provides a highly reliable assessment of email validity. It swiftly identifies common errors, such as typos, missing domains, or incorrectly formatted addresses, ensuring only genuine and deliverable email addresses are accepted.

By leveraging these techniques, businesses can ensure the accuracy of their email lists, enhance campaign performance, and save valuable time and resources.

How we built it

  1. Regex: The complex check of various formats of email address to ensure it is valid.
  2. DNS Lookup: It retrieve the Mail Exchange (MX) records for a given hostname. It uses the pyDNS library (if available) to fetch the MX records associated with the domain of the email address.
  3. SMTP Validation: It retrieves the MX records for the domain of the email address and attempts to establish an SMTP connection with each MX host. It sends a series of commands to the SMTP server to simulate an email exchange and validate the existence of the email address. If the recipient mailbox exists, it returns the email address as "Valid"; otherwise, it returns "Invalid".
  4. Error Handling: The code includes exception handling for potential errors that may occur during the DNS lookup, SMTP connection, or socket operations.

Tech Stack: Python, smtplib, socket, pyDNS, re, flask, multiprocessing, fly.io for app hosting

Challenges we ran into

  1. Designing the regex pattern was hard.
  2. Understanding smtplib and DNS look ups to do validation.

Accomplishments that we're proud of

  1. Accomplishing with in stipulated time of designing a workflow to validate if email exists or not.

What we learned

  1. smtplib
  2. pyDNS

What's next for NilBounceEmailVerify

  1. Enhance Accuracy: Continuously refine and optimize the regex patterns and validation checks to improve the accuracy of email validation
  2. Expand Validation Techniques: Explore technologies such as leveraging machine learning algorithms, or data enrichment services to augment the validation process and increase accuracy.
  3. Reporting and Analytics: Implement reporting and analytics features to provide insights into email validation results.

Try it out

curl --location --request POST 'https://emailvalidation.fly.dev/emailvalidation' \ --header 'Accept: application/json' \ --header 'Content-Type: application/json' \ --data-raw '{"emails":[ "alesiaconover@cox.net", "magormley1@cox.net", "lwoodard@cox.net", "stondreau@cox.net", "lhutfles@cox.net", "bolivarfamily@cox.net", "ageecrew@cox.net", "0cimei@cox.net", "123aloop1@cox.net", "1350tw@cox.net", "1slgoodman62@cox.net", "187thepigs@cox.net", "2katz2meny@cox.net", "jkaine1994@cox.net", "3boyzmom@cox.net" ]}'

Built With

Share this project:

Updates