#python #win32com
Вопрос:
import win32com.client
import os
Outlook = win32com.client.Dispatch("Outlook.Application")
olNs = Outlook.GetNamespace("MAPI")
Inbox = olNs.GetDefaultFolder(6)
Filter = "[Subject] = 'John Doe Test Results'"
Items = Inbox.Items.Restrict(Filter)
Item = Items.GetFirst()
messages = Inbox.Items
print(type(messages))
for attachment in Item.Attachments:
print(attachment.FileName)
attachment.SaveAsFile(os.path.join(r"C:UsersConradDesktoptestNew folder" attachment.FileName))
это загрузит вложение в электронное письмо и поместит его в папку на моем рабочем столе. Я хочу иметь возможность распечатать текст письма, чтобы в дальнейшем я мог добавить его в фрейм данных и отправить в excel, но мне просто нужна помощь в извлечении и печати основного сообщения.
Ответ №1:
Вы можете просмотреть сообщения и распечатать текст каждого сообщения:
import win32com.client
import os
Outlook = win32com.client.Dispatch("Outlook.Application")
olNs = Outlook.GetNamespace("MAPI")
Inbox = olNs.GetDefaultFolder(6)
Filter = "[Subject] = 'John Doe Test Results'"
Items = Inbox.Items.Restrict(Filter)
Item = Items.GetFirst()
messages = Inbox.Items
#NEW CODE
for message in messages:
print(message.body)
print(type(messages))
for attachment in Item.Attachments:
print(attachment.FileName)
attachment.SaveAsFile(os.path.join(r"C:UsersConradDesktoptestNew folder" attachment.FileName))
Комментарии:
1. большое спасибо! единственное, что фильтр не применяется к сообщениям, поэтому он печатает все электронные письма, а не те, которые имеют только указанную тему
2. для сообщения в сообщениях: если сообщение.тема == «Результаты теста Джона Доу»: печать(сообщение.текст)