import imaplib
import subprocess
import time
EMAIL = "your_mail@outlook.com"
PASSWORD = "your_password"
IMAP_SERVER = "outlook.office365.com"
# От кого должно прийти письмо
TRIGGER_SENDER = "sender@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}")'
)
if messages[0]:
print("Получено письмо от нужного отправителя.")
subprocess.Popen(PROGRAM)
# Помечаем письма как прочитанные,
# чтобы программа не запускалась повторно
for msg_id in messages[0].split():
mail.store(msg_id, "+FLAGS", "\\Seen")
mail.logout()
except Exception as e:
print("Ошибка:", e)
time.sleep(15)