Outlook의 범주 및 폴더 변경을 모니터링하는 Python 도구를 만들려고합니다. 지금은 카테고리 변경 사항을 모니터링 이벤트에 훅이 확장하려고Python을 사용하여 Outlook에서 범주/폴더 변경 모니터링
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()
:
지금까지 나는 OnNewMailEx 이벤트에 후크 아래의 코드를 사용하여 수신되는 모든 메일을 모니터링 할 수 있었다. 나는 (http://svn.cy55.de/changeset/1896?format=diff&new=1896에서 올바른 이름) 아래의 코드를 시도 할 때 https://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.olkcategory.aspx
그러나, 아무 일도 발생하지 않습니다 : MSDN 주제에이있다
class Handler_Class(object):
def OnChange(self):
print("Hook successful!")
category = win32com.client.DispatchWithEvents("Outlook.OlkCategoryStrip", Handler_Class)
pythoncom.PumpMessages()
을 또한, 나는 이벤트에 대한 모든 문서를 찾을 수 없습니다 전자 메일이 다른 폴더로 이동했는지 모니터링합니다. 어떤 아이디어?
안녕하세요 Eric, 다시 방문해 주셔서 감사합니다. 몇 가지 질문 : 1. "PropertyChange"/ "ItemAdd"이벤트에 어떻게 연결합니까? 나는 위의 handler_Class에 Def OnPropertyChange (self, name)를 추가하는 것만 큼 간단하지 않다고 생각하니? 새로운 "DispatchWithEvents"를 만들어야합니까? 2. WHO가 재산을 변경했거나 물품을 옮겼다는 것을 추적 할 수 있습니까? – Vlad
죄송합니다, 저는 Python을 모른다. 말할 수있는 것은 PropertyChange는 MailItem 클래스의 이벤트이고 ItemAdd는 Items 컬렉션 클래스의 속성 (Folder 개체의 Items 속성에서 검색 됨)입니다. "Who"는 항상 현재 사용자가되며 NameSpace.CurrentUser 속성을 통해 가져올 수 있습니다. –
안녕하세요, 어떻게 VBA에서 이러한 이벤트에 관심을 가지시겠습니까? – Vlad