Как скачать все вложения из outlook с помощью python? - PullRequest
0 голосов
/ 22 мая 2018

Проблема:

В одном письме у меня будет несколько вложений, и мне нужно загрузить все.

Как я могу это сделать?

Мой код:

import win32com.client
import os
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6) # "6" refers to the index of a folder - in this case the inbox. You can change that number to reference
messages = inbox.Items
message = messages.GetFirst()
subject = message.Subject
#
get_path = 'C:\\Users\\test\\Desktop\\resumes'

for m in messages:
    if m.Subject == "FW: Opportunity with Mindtree | Automotive Infotainment |":

        print (message)
        attachments = message.Attachments
        attachment = attachments.Item(1)
        attachment.SaveASFile(os.path.join(get_path,attachment.FileName)) #Saves to the attachment to current folder
        print (attachment)
        message = messages.GetNext()

    else:
        message = messages.GetNext()

1 Ответ

0 голосов
/ 22 августа 2018

Есть другие проблемы с вашим кодом, но это должно позволить вам получить несколько вложений:

import win32com.client
import os
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6) # "6" refers to the index of a folder - in this case the inbox. You can change that number to reference
messages = inbox.Items
message = messages.GetFirst()
subject = message.Subject
#
get_path = 'C:\\Users\\test\\Desktop\\resumes'

for m in messages:
    if m.Subject == "FW: Opportunity with Mindtree | Automotive Infotainment |":

        print (message)
        attachments = message.Attachments
        num_attach = len([x for x in attachments]))
            for x in range(1, num_attach):
            attachment = attachments.Item(x)
            attachment.SaveASFile(os.path.join(get_path,attachment.FileName))
        print (attachment)
        message = messages.GetNext()

    else:
        message = messages.GetNext()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...