Python скачать вложения электронной почты с помощью Exchangelib - PullRequest
0 голосов
/ 23 сентября 2019

У меня есть небольшой код, который загружает вложения из почты.Он отлично работает, когда я запускаю его как отдельный файл.Но когда я импортирую код из другого файла Python, который находится в какой-то другой папке, код выдает длинный вывод и не останавливается.Висит моя система.

Вывод, который он выдает, представляет собой длинное декодированное сообщение, содержащее алфавиты, оно продолжает публиковать сообщение.

def fn():
    username=""
    password=""
    credentials = Credentials(username="",password="")
    config = Configuration(server="smtp.office365.com", credentials=credentials)
    try:
        account = Account(primary_smtp_address="", config=config,
                        autodiscover=False, access_type=DELEGATE)
    except:
        raise Exception("LOGIN FAILEd")
    start = account.default_timezone.localize(EWSDateTime(2019, 9, 20))
    end = account.default_timezone.localize(EWSDateTime(2019, 9, 21))
    print(start)
    print(end)
    filename="report.xlsx"
    unread = account.inbox.filter(sender="",datetime_received__range=(start,end),is_read=False,subject__contains="")   # returns all mails
    print(len(unread))
    for item in unread:
        for attachment in item.attachments:
            regex=re.findall(filename,str(attachment.name))
            if regex:
                if isinstance(attachment, FileAttachment):
                    local_path = os.path.join("d:/files", attachment.name)
                    with open(local_path, 'wb') as f, attachment.fp as fp:
                        buffer = fp.read(1024)
                        while buffer:
                            f.write(buffer)
                            buffer = fp.read(1024)
                    print('Saved attachment to', local_path)
...