Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python - imaplib - View message to specific sender

Tags:

python

gmail

imap

I have a python script that is checking emails on Gmail's IMAP server, it displays the latest email on the server. The email address however is receiving emails from multiple different accounts. What would I do to take this script and have it view ONLY messages that are to a specific sender? For example, any email only sent to "[email protected]" will come up.

import imaplib

mail = imaplib.IMAP4_SSL('imap.gmail.com')
mail.login('[email protected]', 'password123')
mail.list()
# Out: list of "folders" aka labels in gmail.
mail.select("inbox") # connect to inbox.

result, data = mail.search(None, "ALL")

ids = data[0] # data is a list.
id_list = ids.split() # ids is a space separated string
latest_email_id = id_list[-1] # get the latest

result, data = mail.fetch(latest_email_id, "(RFC822)") # fetch the email body (RFC822) for the given ID

raw_email = data[0][1] # here's the body, which is raw text of the whole email
# including headers and alternate payloads

Thanks in advance! :)

like image 274
Dustin Avatar asked Oct 17 '12 23:10

Dustin


1 Answers

change:

result, data = mail.search(None, "ALL")

to:

result, data = mail.search(None, '(TO "[email protected]")')
like image 162
kkurian Avatar answered Oct 29 '22 10:10

kkurian