Я новичок в python и нашел следующий фрагмент кода для загрузки одного или нескольких вложенных файлов из электронного письма (код работает только тогда, когда в почтовом ящике есть одно электронное письмо, но в данный момент это не проблема)
import imaplib
import os
import email
detach_dir = 'C:/Users/me/Desktop/test'
def get_attachment(msg):
for part in msg.walk():
if part.get_content_maintype()=='multipart':
continue
if part.get('content-Disposition') is None:
continue
fileName = part.get_filename()
if bool(fileName):
filePath = os.path.join(detach_dir, fileName)
with open(filePath, 'wb') as f:
f.write(part.get_payload(decode=True))
m = imaplib.IMAP4_SSL('imap.gmail.com')
m.login('mymail@gmail.com', '`mypassword')
m.select('Inbox')
result, data=m.fetch(b'1', '(RFC822)')
raw = email.message_from_bytes(data[0][1])
get_attachment(raw)
К проблеме: у меня есть очень специфическая ситуация, когда два вложенных файла в письме имеют одинаковое имя. Похоже, это приводит к тому, что программа загружает только один из файлов.
Есть ли простой способ настроить мой код так, чтобы оба загружались?