Skip to content

poplib Module

The poplib module provides POP3 client functionality for retrieving emails from POP3 servers.

Complexity Reference

Operation Time Space Notes
Connect O(1) + network latency O(1) Network latency and auth handshake dominate
List messages O(n) O(n) n = messages
Retrieve O(n) O(n) n = message size

Retrieving Mail via POP3

Basic POP3 Operations

import poplib

# Connect - O(1)
pop = poplib.POP3('pop.gmail.com', 995)  # SSL
pop.user('user@gmail.com')
pop.pass_('password')

# Get message count - O(1)
num_messages = len(pop.list()[1])

# List messages - O(n)
response, messages, octets = pop.list()
for msg_info in messages:
    print(msg_info)

# Retrieve message - O(n)
response, lines, octets = pop.retr(1)
message_text = b'\r\n'.join(lines).decode()
print(message_text)

# Delete message - O(1)
pop.dele(1)

# Commit changes - O(1)
pop.quit()