Advertisement
robjones90

Email 3

Dec 12th, 2019
2,707
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.17 KB | None | 0 0
  1. import re
  2. import dns.resolver
  3. import socket
  4. import smtplib
  5. import csv
  6.  
  7. email_list = ['rbrt.jns90@gmail.com', 'bruno@xuzo.com']
  8.  
  9.  
  10. ##How to write to a CSV
  11. #dict = [
  12. #    {'emails': 'rbrt.jns90@gmail.com'},
  13. #    {'emails': 'bruno@xuzo.com'},
  14. #    {'emails': 'blah@foo.com'}
  15. #    ]
  16.  
  17. #with open('emails.csv', 'w', newline='') as csvfile:
  18. #    fieldnames = ['emails']
  19. #    writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
  20. #    writer.writeheader()
  21. #    for row in dict:
  22. #        writer.writerow(row)
  23.  
  24. with open('emails.csv', newline='') as csvfile:
  25.     reader = csv.reader(csvfile, delimiter=',')
  26.     next(reader) # Skip the firstline
  27.     for row in reader:
  28.         row = "".join(row)
  29.         print(row)
  30.  
  31.         def matcher(row):
  32.             addressToVerify = row
  33.             match = re.match('^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$', addressToVerify)
  34.  
  35.             if match == None:
  36.                 return False
  37.             if match:
  38.                 return True
  39.  
  40.         #address = str(input('Email Address: '))
  41.  
  42.         if matcher(row) == True: #<- the email from the row above goes here
  43.             regexp = re.search("\@(.*)", row)
  44.             domain = regexp.group(1)
  45.             print("Domain: %s "% domain)
  46.             records = dns.resolver.query(domain, 'MX')
  47.             mxRecord = records[0].exchange
  48.             mxRecord = str(mxRecord)
  49.             # Get local server hostname
  50.             host = socket.gethostname()
  51.  
  52.             # SMTP lib setup (use debug level for full output)
  53.             server = smtplib.SMTP()
  54.             server.set_debuglevel(0)
  55.  
  56.             # SMTP Conversation
  57.             server.connect(mxRecord)
  58.             server.helo(host)
  59.             server.mail(row)
  60.             code, message = server.rcpt(str(row))
  61.             server.quit()
  62.  
  63.             # Assume 250 as Success
  64.             if code == 250:
  65.                 print('%s == Success'% row)
  66.             else:
  67.                 print('%s == Bad'% row)
  68.         else:
  69.             print("No Match")
  70.  
  71.  
  72.  
  73. ### CSV file. Open a text editor. Copy and Paste. Save as emails.csv
  74. emails
  75. rbrt.jns90@gmail.com
  76. bruno@xuzo.com
  77. blah@ymail.com
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement