Quantcast
Channel: Active questions tagged email - Stack Overflow
Viewing all articles
Browse latest Browse all 29769

How to validate if an email exists without getting IP blocked?

$
0
0

I am trying to verify emails in python, first I'm doing a simple syntax check which works fine but then I go on to check SMTP which works but my IP will get banned if i run my entire dataset through this, is there any way to check without getting my ip banned?

Here is the code:

def check_email(email):
    # Address used for SMTP MAIL FROM command
    fromAddress = 'corn@bt.com'

    # Simple Regex for syntax checking
    regex = '^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,})$'

    # Email address to verify
    addressToVerify = str(email)

    # Syntax check
    match = re.match(regex, addressToVerify)
    if match == None:
        print('Bad Syntax')
        raise ValueError('Bad Syntax')

    # Get domain for DNS lookup
    splitAddress = addressToVerify.split('@')
    domain = str(splitAddress[1])

    # MX record lookup
    records = dns.resolver.query(domain, 'MX')
    mxRecord = records[0].exchange
    mxRecord = str(mxRecord)
    print(mxRecord)

    # SMTP lib setup (use debug level for full output)
    server = smtplib.SMTP()
    server.set_debuglevel(0)

    # SMTP Conversation
    server.connect(mxRecord)
    server.helo(server.local_hostname)  ### server.local_hostname(Get local server hostname)
    server.mail(fromAddress)
    code, message = server.rcpt(str(addressToVerify))
    server.quit()

    # print(code)
    # print(message)

    # Assume SMTP response 250 is success
    if code == 250:
        return ("True")
    else:
        return ("False")

Thanks


Viewing all articles
Browse latest Browse all 29769

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>