Open In App

Fetching recently sent mails details sent via a Gmail account using Python

Improve
Improve
Like Article
Like
Save
Share
Report

In this article, we will look at how to fetch a fixed number of recently sent e-mails via a Gmail account using Python. The libraries used in this implementation include imaplib, email. You have to manually go and make IMAP access enabled by going into your Gmail account settings. After this only you could access your Gmail account without logging in the browser. In the setting page, enable this before running the script. Algorithm :

  • Import the imaplib, email, webbrowser and os modules.
  • Establish a imap connection with the Gmail account.
  • Instantiate the username and password variables for the Gmail account.
  • Login into the Gmail account
  • Select the sent mails.
  • Determine the number n of sent e-mails to be retrieved.
  • Iterate the n e-mails and print the sender and the subject of the e-mail.

python3




# import the modules
import imaplib                             
import email
from email.header import decode_header
import webbrowser
import os
 
# establish connection with Gmail
server ="imap.gmail.com"                    
imap = imaplib.IMAP4_SSL(server)
 
# instantiate the username and the password
username ="username@gmail.com"
password ="********"
 
# login into the gmail account
imap.login(username, password)              
 
# select the e-mails
res, messages = imap.select('"[Gmail]/Sent Mail"')  
 
# calculates the total number of sent messages
messages = int(messages[0])
 
# determine the number of e-mails to be fetched
n = 3
 
# iterating over the e-mails
for i in range(messages, messages - n, -1):
    res, msg = imap.fetch(str(i), "(RFC822)")    
    for response in msg:
        if isinstance(response, tuple):
            msg = email.message_from_bytes(response[1])
             
            # getting the sender's mail id
            From = msg["From"]
 
            # getting the subject of the sent mail
            subject = msg["Subject"]
 
            # printing the details
            print("From : ", From)
            print("subject : ", subject)


Output :

                                                                                                                  OUTPUT 



Last Updated : 27 Dec, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads