Guest User

Untitled

a guest
Feb 15th, 2018
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1. #!/usr/bin/python
  2.  
  3. import smtplib
  4. import imaplib
  5. import time
  6. import random
  7. import string
  8.  
  9. def send_mail(smtp_server, SSL, username, password, receiver, subject, body):
  10. to = [receiver]
  11. email_text = """\
  12. From: %s
  13. To: %s
  14. Subject: %s
  15.  
  16. %s
  17. """ % (username, ", ".join(to), subject, body)
  18.  
  19. server = None
  20. if SSL:
  21. server = smtplib.SMTP_SSL(smtp_server, 465)
  22. else:
  23. server = smtplib.SMTP(smtp_server, 587)
  24. server.starttls()
  25. server.ehlo()
  26. server.login(username, password)
  27. server.sendmail(username, to, email_text)
  28. server.close()
  29.  
  30. return True
  31.  
  32. def check_mail(imap_server, username, password, search_query):
  33. M = imaplib.IMAP4_SSL(imap_server)
  34. M.login(username, password)
  35. found = False
  36. for n in range(60):
  37. M.select()
  38. typ, data = M.search(None, 'ALL')
  39. for num in data[0].split():
  40. typ, data = M.fetch(num, '(RFC822)')
  41. if search_query in data[0][1]:
  42. found = True
  43. break
  44. if found:
  45. break
  46. time.sleep(5)
  47. M.close()
  48. M.logout()
  49.  
  50. return found
  51.  
  52.  
  53.  
  54. def get_random_string(N=64):
  55. return ''.join(random.choice(string.ascii_lowercase + string.ascii_uppercase + string.digits) for _ in range(N))
  56.  
  57.  
  58. gmail_user = 'REDACTED'
  59. gmail_pass = 'REDACTED'
  60. server = 'REDACTED'
  61. user = 'REDACTED'
  62. password = "REDACTED"
  63.  
  64. random_body = get_random_string()
  65. print "Random body:", random_body
  66. print "Sending from Gmail"
  67. assert send_mail('smtp.gmail.com', True, gmail_user, gmail_pass, user, 'subject', random_body)
  68. print "Check if mail was received"
  69. assert check_mail(server, user, password, random_body)
  70.  
  71. random_body = get_random_string()
  72. print "Random body:", random_body
  73. print "Sending to Gmail"
  74. assert send_mail(server, False, user, password, gmail_user, 'subject', random_body)
  75. print "Check if mail was received"
  76. assert check_mail("imap.gmail.com", gmail_user, gmail_pass, random_body)
Add Comment
Please, Sign In to add comment