0
0 комментариев

Пишу код на python 3 с библиотеками imaplib, email, smtplib.
Код ниже должен возвращать массив с mail’s + msg’s.
Но в массиве записывается только последнее письмо и email с ящика. Почему?

import smtplib
import time
import imaplib
import email
 
ORG_EMAIL   = "@gmail.com"
FROM_EMAIL  = "username" + ORG_EMAIL
FROM_PWD    = "password"
SMTP_SERVER = "imap.gmail.com"
SMTP_PORT   = 993
EMAILS_LIST = []
 
 
try:
   mail = imaplib.IMAP4_SSL(SMTP_SERVER)
   mail.login(FROM_EMAIL,FROM_PWD)
   mail.select('inbox')
 
   type, data = mail.search(None, 'ALL')
   mail_ids = data[0]
 
   id_list = mail_ids.split()
 
   for i in reversed(id_list):
       typ, data = mail.fetch(i, '(RFC822)' )
 
   for response_part in data:
       if isinstance(response_part, tuple):
           msg = email.message_from_string(response_part[1].decode('utf-8'))
           email_subject = msg['subject']
           email_from = msg['from']
           EMAILS_LIST.append(email_from)
           print('From : ' + email_from + '\n')
           print('Subject : ' + email_subject + '\n')
except Exception as e:
     print(str(e))
gmails = email.utils.parseaddr(email_from)
print(gmails[1])
print(EMAILS_LIST)


Добавить комментарий