Я пишу короткий сценарий, чтобы контролировать свой почтовый ящик и получать уведомления при каждом новом входящем письме. Пока я использую бесконечное время l oop, например:
msg_id_check = None
while True:
result, data = mail.fetch(mail.select('INBOX')[1][0], "(RFC822)") # mail is an imaplib object
msg_str = email.message_from_bytes(data[0][1])
msg_id = get_email_id(msg_str.get('Received'))
if msg_id == msg_id_check: # Don't keep notifying me of the same email
continue
FROM = msg_str.get('From')
SUBJECT = msg_str.get('Subject')
BODY = get_body(msg_str).decode()
print(f"Subject: {SUBJECT}\nFrom: {FROM}\nBody: {BODY}")
msg_id_check = msg_id
Сначала я подумал, что не могу этого сделать, потому что я слышал, как мой компьютер застревает в бесконечном l oop, и это не похоже на то, что ему это нравится, но когда я попробовал этот код, я не услышал никаких шумов от своего компьютера, поэтому мне интересно, является ли этот процесс удобным для процессора или есть лучший способ получать уведомления при каждом входящем письме?
PS Прямо сейчас я просто распечатываю новые письма на экране, но в моем проекте мне нужно что-то делать с этими письмами, и я не хочу потерять ни одно из этих писем .