Загрузите вложенные файлы с общим именем из электронной почты, используя python - PullRequest
0 голосов
/ 09 октября 2019

Я новичок в 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)

К проблеме: у меня есть очень специфическая ситуация, когда два вложенных файла в письме имеют одинаковое имя. Похоже, это приводит к тому, что программа загружает только один из файлов.

Есть ли простой способ настроить мой код так, чтобы оба загружались?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...