Как использовать Python COM для фильтрации электронных писем от определенных отправителей?

#python #python-3.x #outlook #com #outlook-object-model

#python #python-3.x #outlook #com #outlook-object-model

Вопрос:

Я пытаюсь автоматизировать получение вложений из определенных электронных писем, и документация для win32com.client ужасна.

Пока у меня есть следующее:

 import win32com.client as win32
import os

outlook = win32.Dispatch("Outlook.Application").GetNamespace("MAPI")

inbox = outlook.Folders["Payments"].Folders["Inbox"]

messages = inbox.Items


for i in range(10):

    message = messages.GetNext()
    print(message.Sender)
    print(message.Subject)
    print(message.ReceivedTime)
    attachment = message.attachments

    for j in attachment:
        j.SaveAsFile(os.getcwd()   "\"   j.FileName)
  

Однако я хочу получать вложения только от say «payments@email.com «чего я никак не могу понять, как это сделать.

Есть ли способ получать электронные письма и их вложения только от определенных отправителей (бонус, если я также могу отфильтровать заголовок письма)?

Ответ №1:

Используйте ограничение, подобное filteredItems = Inbox.Items.Restrict("[SenderEmailAddress] = 'payments@email.com' ") документации по адресу https://learn.microsoft.com/en-us/office/vba/api/outlook.items.restrict