Email messages from grouped email using IMAPClient in Python.
On 12/09/19 5:06 PM, Srinivas Pullabhotla wrote:
> I am trying to fetch email messages from a gmail inbox. So, there will be 1000s of messages sent to Inbox and since they are 1000s, the emails are grouped 100 per each email item.
> When I tried this method, the program only fetches some but not all and especially it happens with grouped email messages. How can I get all the messages from that grouped email.
> import email, time, sys
> from imapclient import IMAPClient
> with IMAPClient(HOST) as server:
> server.login(USERNAME, PASSWORD)
> server.select_folder('INBOX', readonly=True)
> messages = server.search(['ALL', 'UNSEEN'])
> for uid, message_data in server.fetch(messages, 'RFC822').items():
> email_message = email.message_from_bytes(message_data[b'RFC822'])
> print(email_message.get_payload(None, True))
> The program should fetch all the email messages from the grouped email and output to the file (in my case I am grabbing the href links). How best I can achieve this ? Appreciate thoughts and suggestions.
First debug is to assign the server.select_folder() return values, and
subsequently print them for inspection. (know what you are dealing
with/that you have been given something to work with)
The server.search() doesn't request ALL of the msgs. Are you sure those
missing from the 'group' are not marked as 'read'? So, second debug
would be to remove the 'UNSEEN' criteria and observe any difference.