Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import poplib
- from email.parser import BytesParser
- from email.policy import default
- import os
- f = open("accounts.txt") # читаємо файл з аккаунтами
- accs = f.readlines()
- f.close()
- i = 0
- #print(accs)
- def check(login, passwd): # описуємо основну функію
- file_path = str(login)
- os.mkdir("{}".format(file_path)) # створюемо папки для пошт
- pop = poplib.POP3('0.0.0.0') # конектимся до пошти
- pop.user(login)
- pop.pass_(passwd)
- #print(pop.getwelcome())
- stat = pop.stat()
- list_count = int(stat[0])
- print("Total mails: ", list_count)
- mailcount = pop.list() # рахуємо кількість листів
- if list_count != 0:
- text_count, img_count, pdf_count, html_count = 0, 0, 0, 0
- for k in range(1, list_count): # перебираємо всі листи
- r = pop.retr(k)
- print(k)
- bp = BytesParser(policy=default).parsebytes(b'\r\n'.join(r[1])) # парсимо вміст отриманного листа
- for part in bp.walk(): # відділяємо різні типи вмісту
- if part.get_content_type() == 'text/plain': # текст
- message = part.get_content()
- my_file = open("{}/text_{}.txt".format(file_path, text_count), "a", encoding="utf-8") # записуемо лист в папку
- my_file.write(message)
- text_count = text_count + 1
- print("text/plain - done")
- if part.get_content_type() == 'text/html': # html
- message = part.get_content()
- my_file = open("{}/html_{}.html".format(file_path, html_count), "a", encoding="utf-8") # записуемо лист в папку
- my_file.write(message)
- html_count = html_count + 1
- print("text/html - done")
- if part.get_content_type() == 'image/jpeg': # jpeg
- message = part.get_payload(decode=True)
- with open("{}/img_{}.jpg".format(file_path, img_count), 'wb') as f:
- f.write(part.get_payload(decode=True))
- img_count = img_count + 1
- print("image/jpeg - done")
- if part.get_content_type() == 'application/pdf': # pdf
- message = part.get_payload(decode=True)
- with open("{}/pdf_{}.pdf".format(file_path, pdf_count), 'wb') as f:
- f.write(part.get_payload(decode=True))
- pdf_count = pdf_count + 1
- print("application/pdf")
- else:
- print("No messages")
- for acc in accs: # перебираемо поштові аккаунти
- i = i + 1
- acc = acc.replace('\n', '')
- acc = acc.replace(' ', '')
- acc = acc.split(':')
- if len(acc) == 2: # запускаем перевірку
- print(acc)
- check(acc[0], acc[1])
- print("************************************************************************")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement