Skip to content

imaplib Module

The imaplib module provides IMAP4 client functionality for accessing email on IMAP servers.

Complexity Reference

Operation Time Space Notes
login() O(1) O(1) Authentication
List mailboxes O(n) O(n) n = mailboxes
Fetch messages O(n) O(n) n = messages

Accessing IMAP Mailboxes

Basic IMAP Operations

import imaplib

# Connect - O(1)
imap = imaplib.IMAP4('imap.gmail.com')
imap.starttls()
imap.login('user@gmail.com', 'password')

# List mailboxes - O(n)
code, mailboxes = imap.list()
for mailbox in mailboxes:
    print(mailbox)

# Select mailbox - O(1)
imap.select('INBOX')

# Search - O(n)
code, ids = imap.search(None, 'ALL')
email_ids = ids[0].split()

# Fetch - O(n)
for email_id in email_ids[:5]:  # First 5
    code, data = imap.fetch(email_id, '(RFC822)')
    print(data[0][1])

# Close - O(1)
imap.close()
imap.logout()