Подтвердить что ты не робот

Microsoft Outlook Создать приложение для запуска правила /Script Python

Я создал shutdown.py script, который выключает мой компьютер при его выполнении. Я также создал правило в Microsoft Outlook, которое выполняет мой Python script, когда я получаю письмо с% BLAHBLAHBLAH% в теме. Я проверил его, и он работает безупречно; тем не менее, мой вопрос для всех вас: возможно ли передать строку темы письма в Python script перед ее выполнением? В принципе, я хочу иметь ключевое слово в строке темы, которое выполнит определенный script, но также сможет "передать" параметры в строку темы письма, которую будет использовать Python script. Например, если я отправил% shutdown30%, мой python script смог бы проанализировать строку% shutdown30% и использовать 30 в качестве параметра для выключения компьютера за 30 минут.

Спасибо за любые советы/комментарии/предложения/ответы:)

4b9b3361

Ответ 1

Зачем создавать правило в Outlook, которое запускает script, если получено электронное письмо, когда вы можете просто сделать все это из python.

Использование Python для отслеживания всех входящих писем и последующего выполнения кода, если получено сообщение с% 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()