На пайтоне есть библиотека imaplib, которая позволяет получать письма с вашего ящика через IMAP и парсить их . Ниже мой код который я создавал для себя для такой же задачи.
def read(sender_of_interest=None):
imap = imaplib.IMAP4_SSL("imap.gmail.com", 993)
imap.login('Почта', 'пароль')
imap.select('INBOX')
if sender_of_interest:
status, response = imap.uid('search', None, 'UNSEEN', 'FROM {0}'.format(sender_of_interest))
else:
status, response = imap.uid('search', None, 'UNSEEN')
if status == 'OK':
unread_msg_nums = response[0].split()
else:
unread_msg_nums = []
data_list = []
for e_id in unread_msg_nums:
e_id = e_id.decode('utf-8')
_, response = imap.uid('fetch', e_id, '(RFC822)')
html = response[0][1].decode('utf-8')
email_message = email.message_from_string(html)
data_list.append(email_message.get_payload())
for elem in data_list:
clean_html(elem)
а дальше все просто:
if "ключевое слово" in массив_с_сообщениями[индекс сообщения]:
...то что надо сделать если ключевое слово найдено.
ну и в цыкле понятное дело