import imaplib
import base64
import os
import email
email_user = 'mail@mail.ru'
email_pass = 'pass'
mail = imaplib.IMAP4_SSL('imap.mail.ru')
mail.login(email_user, email_pass)
mail.select('inbox')
type, data = mail.search(None, 'ALL')
mail_ids = data[0]
id_list = mail_ids.split()
def f(part):
fileName = part.get_filename()
print(fileName)
if bool(fileName):
filePath = os.path.join('datafiles/', fileName)
if not os.path.isfile(filePath):
fp = open(filePath, 'wb')
fp.write(part.get_payload(decode=True))
fp.close()
for num in reversed(data[0].split()):
fl = False
typ, data = mail.fetch(num, '(RFC822)' )
raw_email = data[0][1]
raw_email_string = raw_email.decode('utf-8')
email_message = email.message_from_string(raw_email_string)
for part in email_message.walk():
if part.get_content_maintype() == 'multipart':
continue
if part.get('Content-Disposition') is None:
continue
for response_part in data:
if isinstance(response_part, tuple):
msg = email.message_from_string(response_part[1].decode('utf-8'))
email_from = msg['from']
if email_from.find('avto-ms') != -1 and 'avto-ms' not in l:
print('a', email_from)
f(part)
Код программы, соответственно.
Сама ошибка: fp = open(filePath, 'wb')
OSError: [Errno 22] Invalid argument: 'datafiles/=?utf-8?B?cm9zc2tvX3ByaWNlLnppcA==?='