【发布时间】:2019-08-17 00:37:12
【问题描述】:
我想检查特定的发件人电子邮件并在它到达的任何地方自动处理它
但是,在某些情况下,我的 Outlook 可能会重新启动,这意味着当我收到来自发件人的邮件并标记为未读时
为了持续监控特定主题的新邮件,我找到了以下代码
import win32com.client
import pythoncom
import re
class Handler_Class(object):
def OnNewMailEx(self, receivedItemsIDs):
# RecrivedItemIDs is a collection of mail IDs separated by a ",".
# You know, sometimes more than 1 mail is received at the same moment.
for ID in receivedItemsIDs.split(","):
mail = outlook.Session.GetItemFromID(ID)
subject = mail.Subject
print subject
try:
command = re.search(r"%(.*?)%", subject).group(1)
print command # Or whatever code you wish to execute.
except:
pass
outlook = win32com.client.DispatchWithEvents("Outlook.Application",Handler_Class)
#and then an infinit loop that waits from events.
pythoncom.PumpMessages()
即使我想通过所有未读邮件来检查发件人的邮件是否已经到达并处理它(如果找到)
是否有任何功能可以检查未读邮件以添加到 handler_class 中
或者让我知道任何替代程序
【问题讨论】:
-
你打算在你的outlook重启后重启你的python程序吗?如果是,您可以在执行
pythoncom.PumpMessages()之前检查未读电子邮件作为脚本的第一个操作 -
我正在寻找一个案例,如果我的 Outlook 凭据已过期并尝试使用我的新凭据登录或我的系统已重新启动..意味着当我收到 3 封邮件时...你能建议我如何继续处理这 2 个案例。 .也可以为上面的评论放一些示例代码。
-
如果你不重启你的python脚本,我不知道该怎么做。如果你这样做,那么看看我的回答
-
非常感谢本!!!...
-
我有一个问题,您是否在重新启动 Outlook 后尝试过您的代码?我的意思是,如果您在重新启动 Outlook 后不重新启动 Python 脚本,您是否仍会监控收到的消息(我不接受未读消息)?