Чтение писем из Outlook с Python и указание диапазона дат - PullRequest
0 голосов
/ 10 мая 2019

Я пытаюсь читать электронные письма из Outlook, используя определенный диапазон дат, а также другие критерии - отправитель, тема и т. Д. Однако я не уверен, как указать диапазон дат, в котором Python может искать электронные письма. Это то, что у меня до сих пор, что генерирует ошибку типа ниже:

if subject in message.subject and date in message.senton.date():
TypeError: argument of type 'datetime.date' is not iterable
import win32com.client
import datetime


outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")

inbox = outlook.GetDefaultFolder(18).Folders.Item("xxxxx")
messages = inbox.Items
date = datetime.date.today()


subject = "xxxxxxx"

for message in messages:
    if subject in message.subject and date in message.senton.date():
     print(message.senton.time())

Я хотел бы искать электронные письма в пределах определенного диапазона дат, а также иметь возможность использовать более одного критерия для поиска. Например, укажите тему, отправителя и т. Д. Но я не уверен, как, я новичок в Python, поэтому, пожалуйста, помогите!

1 Ответ

1 голос
/ 10 мая 2019

Попробуйте это

if subject in message.subject and date == message.senton.date():
     print(message.senton.time())
     print(message.sender)

Edit: если вы хотите диапазон дат, вы можете использовать datetime для определения диапазона дат

start = message.senton.date() - timedelta(days=10)
end = message.senton.date() + datetime.timedelta(days=10) # 20 days date range
if subject in message.subject and date > start and date < end:
     print(message.senton.time())
     print(message.sender)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...