Cómo monitorear continuamente un nuevo correo en Outlook y correos no leídos de una carpeta específica en Python

Quiero verificar el correo electrónico de un remitente en particular y procesarlo automáticamente donde sea que llegue

Sin embargo, puede haber alguna situación en la que se reinició mi perspectiva, es decir, mientras recibía el correo del remitente y estaba marcado como no leído

Para el monitoreo continuo de un nuevo correo para un asunto específico, he encontrado el siguiente código

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() 

Incluso quiero revisar todos los correos no leídos para verificar si ha llegado un correo de un remitente y procesarlo (si se encuentra)

¿Hay alguna función para verificar si hay correos no leídos para agregar dentro de handler_class?

O hágamelo saber para cualquier procedimiento alternativo

Respuestas a la pregunta(1)

Su respuesta a la pregunta