Загрузка данных


import imaplib
import email
import subprocess
import time

EMAIL = "monitor@outlook.com"
PASSWORD = "password"

IMAP_SERVER = "outlook.office365.com"

# От кого должно прийти письмо
TRIGGER_SENDER = "sender@example.com"

# Кому должно быть адресовано письмо
TRIGGER_RECIPIENT = "target@example.com"

# Что запускать
PROGRAM = r"C:\Scripts\start.bat"

while True:
    try:
        mail = imaplib.IMAP4_SSL(IMAP_SERVER)
        mail.login(EMAIL, PASSWORD)
        mail.select("INBOX")

        status, messages = mail.search(
            None,
            f'(UNSEEN FROM "{TRIGGER_SENDER}")'
        )

        for msg_id in messages[0].split():

            _, msg_data = mail.fetch(msg_id, "(RFC822)")

            for part in msg_data:
                if not isinstance(part, tuple):
                    continue

                msg = email.message_from_bytes(part[1])

                recipient = msg.get("To", "").lower()

                if TRIGGER_RECIPIENT.lower() in recipient:
                    print("Получено подходящее письмо.")
                    subprocess.Popen(PROGRAM)

                    # Помечаем как прочитанное
                    mail.store(msg_id, "+FLAGS", "\\Seen")

        mail.logout()

    except Exception as e:
        print("Ошибка:", e)

    time.sleep(15)