Get Starred Messages From Gmail Using Imap4 And Python
I found many dummy info about working with IMAP, but I didn't understand how to use it for my purposes. I found how I can get ALL messages from mailbox and ALL SEEN messages, but h
Solution 1:
Gmail's "Starred" state maps directly onto the IMAP \Flagged
keyword. So you can toggle a message's star by setting or unsetting \Flagged
on the message:
IMAP4.store(num, '+FLAGS', '\\Flagged')
You can search for starred messages by searching for FLAGGED
(or for unstarred messages via UNFLAGGED
):
IMAP4.search(None, 'FLAGGED')
Gmail even gives you a virtual folder containing all starred messages. If you SELECT "[Gmail]/Starred"
, you'll get a view of all the starred messages in the mailbox:
IMAP4.select('[Gmail]/Starred')
Solution 2:
from imap_tools import MailBox, AND
with MailBox('imap.mail.com').login('test@mail.com', 'pwd', 'INBOX') as mailbox:
# get list of subjects of flagged emails from INBOX folder
subjects = [msg.subject for msg in mailbox.fetch(A(flagged=True))]
# set flag on emails from INBOX that html contains <b> tag
flags = [imap_tools.MailMessageFlags.FLAGGED]
mailbox.flag([m.uid for m in mailbox.fetch() if'<b>'in m.html], flags, True)
# print flags for all emails from INBOX for msg in mailbox.fetch(): print(msg.date, msg.flags)
My external lib: https://github.com/ikvk/imap_tools
Post a Comment for "Get Starred Messages From Gmail Using Imap4 And Python"