Список доступных атрибутов сообщения с win32com.client - PullRequest
0 голосов
/ 07 июня 2019

У меня есть каталог с сотнями писем Outlook, сохраненных в формате .msg. У меня есть скрипт для доступа к определенным атрибутам, например, SenderName, Subject и т. Д., Однако сценарий не выполняется для определенных файлов. После некоторого исследования файлы с ошибками являются ответами на приглашения в календарь, а атрибут, который не проходит, является атрибутом «Кому», поэтому его необходимо обрабатывать по-разному для сообщений электронной почты и приглашений в календарь. Все файлы хранятся в формате .msg, поэтому нет никакого видимого способа определить, какие из них есть, без открытия каждого отдельного файла.

Некоторые другие сообщения, которые я обнаружил, направлены на прямой доступ к Outlook, а не на использование сохраненных файлов MSG в каталоге. В настоящее время я жестко закодировал некоторые (см. Код ниже), но это упражнение доказало, что атрибуты могут вести себя по-разному в зависимости от типа файла.

Ниже приведен пример кода, который у меня есть.

for eachFile in msgList:
    filePath = outDir + "\\" + eachFile
    msg = outlook.OpenSharedItem(filePath)
    print msg.ReceivedTime
    print msg.Subject
    print msg.Body
    print msg.To
    print msg.Size
    print msg.Attachments

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

1 Ответ

0 голосов
/ 08 июня 2019

Прежде чем получить доступ к любым свойствам сообщения, проверьте свойство Class (предоставляется всеми объектами OOM) - для объекта MailItem это будет 43 (olMailItem).

...