How to email validation without regex in python?

To validate an email without using regular expressions in Python, you can utilize the email module from the standard library. Here’s an example of how you can perform email validation using the email module:

import re
from email import policy
from email.parser import BytesParser

def validate_email(email):
    try:
        # Parse the email using BytesParser
        parser = BytesParser(policy=policy.default)
        message = parser.parsebytes(email)

        # Check if the email has 'From' and 'To' headers
        if not message['From'] or not message['To']:
            return False

        # Perform additional checks if needed
        # For example, you can validate the format of the email address, domain, etc.

        # If all checks pass, return True
        return True
    except Exception:
        return False

# Example usage
email1 = b'From: [email protected]\r\nTo: [email protected]\r\nSubject: Test\r\n\r\nHello, this is a test email.'
email2 = b'From: [email protected]\r\nSubject: Test\r\n\r\nHello, this is an incomplete email.'

# Validate the emails
print(validate_email(email1))  # True
print(validate_email(email2))  # False

In this example, the validate_email() function uses the email.parser.BytesParser class to parse the email message. It checks if the ‘From’ and ‘To’ headers are present, which indicates the minimum required information for a valid email.

You can also add additional checks based on your specific requirements, such as validating the format of the email address, checking the domain existence, or performing more advanced checks.

Note that while the email module provides basic email validation, it does not cover all possible cases and is not a complete replacement for a comprehensive email validation using regular expressions.