Я хочу создать инструмент Python, который отслеживает изменения категорий и папок в Outlook.
До сих пор мне удалось подключиться к событию OnNewMailEx и отслеживать все входящие электронные письма, используя код ниже:
import win32com.client
import pythoncom
import re
def getPath(folder, path=[]):
if folder.parent.parent.parent:
path.append(folder.name)
getPath(folder.parent, path)
return "\\".join(reversed(path))
class Handler_Class(object):
def OnNewMailEx(self, receivedItemsIDs):
for ID in receivedItemsIDs.split(","):
mailItem = outlook.Session.GetItemFromID(ID)
if re.search("(TS)|(ST)", mailItem.Parent.FolderPath) != None:
print "Subj: " + mailItem.Subject
print "Time: " + str(mailItem.ReceivedTime)
print "Parent: " + str(mailItem.Parent.FolderPath)
# print "Body: " + mailItem.Body.encode( 'ascii', 'ignore' )
print "========"
outlook = win32com.client.DispatchWithEvents("Outlook.Application", Handler_Class)
pythoncom.PumpMessages()
Теперь я пытаюсь расширить это, чтобы подключиться к событиям, которые отслеживают изменения категорий. У MSDN есть это по этому вопросу: https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.olkcategory.aspx
Однако, когда я попробовал приведенный ниже код (с правильными именами из http://svn.cy55.de/changeset/1896?format=diff&new=1896), ничего не происходит:
class Handler_Class(object):
def OnChange(self):
print("Hook successful!")
category = win32com.client.DispatchWithEvents("Outlook.OlkCategoryStrip", Handler_Class)
pythoncom.PumpMessages()
Кроме того, я не могу найти никакой документации по событиям, которые отслеживают, было ли электронное письмо перемещено в другую папку. Любые идеи??