import pythoncom
from win32com.client import DispatchWithEvents
# Event handler class for Outlook events
class OutlookEventHandler(object):
@staticmethod
def OnNewMailEx(EntryIDCollection):
for ID in EntryIDCollection.split(","):
item = Outlook.Session.GetItemFromID(ID)
# check item class, 43 = MailItem
if item.Class == 43:
print(" Subj: " + item.Subject)
if __name__ == "__main__":
Outlook = DispatchWithEvents("Outlook.Application", OutlookEventHandler)
olNs = Outlook.GetNamespace("MAPI")
Inbox = olNs.GetDefaultFolder(6)
pythoncom.PumpMessages()
一个月一次 *
示例 *
import pythoncom
from win32com.client import DispatchWithEvents, Dispatch
# Event handler class for outlook events
class OutlookEvent(object):
@staticmethod
def OnItemAdd(item):
""" Name Required/Optional Data type Description
Item Required Object The item that was added."""
print(f'The item that was added = {item.Subject}')
if __name__ == "__main__":
outlook = Dispatch("outlook.Application")
olNs = outlook.GetNamespace("MAPI")
inbox = olNs.GetDefaultFolder(6)
event = DispatchWithEvents(inbox.Items, OutlookEvent)
pythoncom.PumpMessages()
2条答案
按热度按时间uz75evzq1#
DispatchWithEvents
函数用于Outlook NewMailEx event *rsl1atfo2#
您可以创建运行VBA脚本的规则。该脚本可以执行任何您希望它执行的操作,包括运行Python代码。