Advertisement
Guest User

mail.py

a guest
Jul 20th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.61 KB | None | 0 0
  1. import socket
  2.  
  3. BUFFER_SIZE = 1024
  4. POP_PORT = 110
  5.  
  6.  
  7. def connect_pop(server_ip, username, password):
  8. s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  9. s.connect((server_ip, POP_PORT))
  10. s.recv(BUFFER_SIZE)
  11. s.send("USER " + username + "\r\n")
  12. s.recv(BUFFER_SIZE)
  13. s.send("PASS " + password + "\r\n")
  14. s.recv(BUFFER_SIZE)
  15. return s
  16.  
  17.  
  18. def pop_list(_socket):
  19. _socket.send("LIST\r\n")
  20. _socket.recv(BUFFER_SIZE)
  21. data = _socket.recv(BUFFER_SIZE)
  22. lines = data.split("\r\n")
  23. mail_ids = []
  24. for line in lines:
  25. id_str = line.split(" ")[0]
  26. if id_str == ".":
  27. break
  28. mail_ids.append(int(id_str))
  29. return mail_ids
  30.  
  31.  
  32. def pop_retr(_socket, mail_id):
  33. _socket.send("RETR " + str(mail_id) + "\r\n")
  34. _socket.recv(BUFFER_SIZE)
  35. return Mail(_socket.recv(BUFFER_SIZE), mail_id)
  36.  
  37.  
  38. def pop_get_all_mails(_socket):
  39. mail_ids = pop_list(_socket)
  40. mail_list = []
  41. for id in mail_ids:
  42. mail_list.append(pop_retr(_socket,id))
  43. return mail_list
  44.  
  45.  
  46. class Mail:
  47. def __init__(self, data, mail_id):
  48. self.id = mail_id
  49. lines = data.split("\r\n")
  50. self.subject = ""
  51. self.sender = ""
  52. for line in lines:
  53. if line == "":
  54. break
  55. else:
  56. lparts = line.split(": ")
  57. if lparts[0] == "Subject":
  58. self.subject = lparts[1]
  59. elif lparts[0] == "From":
  60. self.sender = lparts[1]
  61. con_beg = data.find("\r\n\r\n")
  62. self.content = data[con_beg:]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement