Ich bin auf der Suche nach einem Python-Tool, das Kategorien- und Ordneränderungen in Outlook überwacht.Monitor für Kategorie/Ordner ändern in Outlook mit Python
Bisher konnte ich in das OnNewMailEx Ereignis einzuhaken und für alle eingehenden E-Mails überwachen unter Verwendung des Codes:
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()
Jetzt versuche ich, diese zu erweitern in die Ereignisse einzuhaken, die Kategorie Änderungen überwachen. MSDN hat dies zum Thema: https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.olkcategory.aspx
Allerdings, wenn ich den Code unten versucht (mit den richtigen Namen von http://svn.cy55.de/changeset/1896?format=diff&new=1896), passiert nichts:
class Handler_Class(object):
def OnChange(self):
print("Hook successful!")
category = win32com.client.DispatchWithEvents("Outlook.OlkCategoryStrip", Handler_Class)
pythoncom.PumpMessages()
Außerdem kann ich keine Dokumentation für Veranstaltungen Diese Überwachung, wenn eine E-Mail in einen anderen Ordner verschoben wurde. Irgendwelche Ideen??
Hallo Eric, Danke für das Zurückkommen. Ein paar Fragen: 1. Wie gehst du in das "PropertyChange"/"ItemAdd" Event ein? Ich denke nicht, dass es so einfach ist wie ein def OnPropertyChange (self, name) zu meiner Handler_Class oben hinzuzufügen? Muss ich ein neues "DispatchWithEvents" erstellen? 2. Kann ich verfolgen, wer die Immobilie geändert hat/den Gegenstand verschoben hat? – Vlad
Sorry, ich weiß Python nicht. Ich kann nur sagen, dass PropertyChange ein Ereignis der MailItem-Klasse und ItemAdd eine Eigenschaft der Items-Auflistungsklasse ist (die von der Items-Eigenschaft eines Folder-Objekts abgerufen wird). Das "wer" wäre immer der aktuelle Benutzer, den Sie über die Eigenschaft NameSpace.CurrentUser erhalten können. –
Hallo, also wie würdest du diese Veranstaltung in VBA einhängen? – Vlad