Microsoft Outlook创建规则运行应用程序/脚本Python

Microsoft Outlook创建规则运行应用程序/脚本Python,python,outlook,rule,Python,Outlook,Rule,我创建了一个shutdown.py脚本,它在执行时关闭我的计算机。我还在Microsoft Outlook中创建了一个规则,当我收到主题为%BLAHBLAHBLAH%的电子邮件时,该规则将执行我的Python脚本。我已经测试过了,它工作得完美无缺;然而,我要问大家的问题是:在执行之前,是否可以将电子邮件的主题行传递到Python脚本中?基本上,我希望在主题行中有一个关键字,该关键字将执行某个脚本,但也能够将参数“传递”到电子邮件的主题行中,然后Python脚本将使用该主题行。例如,如果我发送了%

我创建了一个shutdown.py脚本,它在执行时关闭我的计算机。我还在Microsoft Outlook中创建了一个规则,当我收到主题为%BLAHBLAHBLAH%的电子邮件时,该规则将执行我的Python脚本。我已经测试过了,它工作得完美无缺;然而,我要问大家的问题是:在执行之前,是否可以将电子邮件的主题行传递到Python脚本中?基本上,我希望在主题行中有一个关键字,该关键字将执行某个脚本,但也能够将参数“传递”到电子邮件的主题行中,然后Python脚本将使用该主题行。例如,如果我发送了%shutdown30%,我的python脚本将能够解析字符串%shutdown30%,并使用30作为参数在30分钟内关闭计算机


提前感谢您提供的任何建议/评论/建议/答案:)

为什么要在outlook中创建一个规则,在收到电子邮件时运行脚本,而您只需通过python即可完成这一切

使用Python监视outlook中所有传入的电子邮件,然后在收到主题为%BLAHBLAH%的电子邮件时执行一些代码。以下是一个例子:

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
            try:
                # Taking all the "BLAHBLAH" which is enclosed by two "%". 
                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() 

我不知道Outlook可以做什么,但python当然可以接受命令行参数。查看sys.argv如果您可以让outlook执行类似python shutdown.py%subject%的操作,那么sys.argv将正常工作。谢谢,但这并不是我想要的。Outlook允许您创建规则。您可以创建一个规则,说明如果收到主题为“BLAH”的电子邮件,请运行此应用程序。因此,收到的带有指定主题的电子邮件会触发python脚本,问题是是否有任何方法可以让python看到收到的主题。我猜不会,但也许有人知道我不知道的事情。谢谢你的回复!神奇的资源!我不知道Outlook可以这样使用。这带来了无数的机会。是的,这真是太酷了。你会怎么做呢,也许是作为服务或其他什么?所以它没有占用命令窗口。这看起来很酷,但是有人能解释一下DispatchWithEvents是做什么的(以及它与Dispatch的区别),以及上面脚本的每一部分是如何工作的吗?我在谷歌上几乎找不到教程形式的DispatchWithEvents,所以任何帮助都会很好!好极了+1为清楚的解释。谢谢@YusuMishi@guialmachado您需要将BLAHBLAH括在两个“%”之间。就像这个“%BLAHBLAH%”。BLAHBLA可以是任何命令或单词。最重要的是用“%”括起来。