Definition under: Definitions

What is Post Office Protocol version 3 (POP3)?

Post Office Protocol version 3 (POP3) is a standard protocol used for receiving email from a remote email server to a local email client. It is one of the most commonly used protocols for retrieving emails from an email server.

When an email client connects to an email server using POP3, it downloads all the emails that have been stored on the server since the last time the client connected. The downloaded emails are then stored on the client's computer, and the server usually deletes them, although some email clients can be configured to leave a copy of the messages on the server.


Dissecting Post Office Protocol version 3 (POP3)

POP3 was first specified in RFC 1081 in November 1988, which defined the protocol and its initial implementation. The first version of POP3 was developed to replace the previous email retrieval protocol, POP2, which had limitations and lacked features users needed. POP3 introduced new features such as support for multiple mailboxes and the ability to leave messages on the server.

The development of POP3 was a significant milestone in email technology, as it provided a standardized way for email clients to communicate with email servers, making it easier for email providers to offer their services to a wider range of users.

By developing a standardized protocol like POP3, email clients could communicate with any email server that supported the protocol, promoting interoperability between different email clients and servers.


Overview of How POP3 Works

The way POP3 works is defined by its specification, which outlines how email clients can communicate with email servers using the protocol. The specification includes details on the format and structure of the messages exchanged between the client and server, how the authentication process works, how emails are retrieved from the server, and how the server handles various errors or exceptions that may occur during the communication process.


POP3 Specifications

The specifications for POP3 are documented in a series of Requests for Comments (RFCs), which are published by the Internet Engineering Task Force (IETF). The main RFCs that define POP3 are:

  • RFC 1939: This is the main specification for POP3 and defines the protocol and its basic operation, including the commands and responses used by the client and server to communicate with each other. It also specifies the format of the messages exchanged between the client and server, the authentication process, and the rules for handling errors.
  • RFC 1957: This document provides guidance for the implementation of POP3 servers and describes how to optimize their performance.
  • RFC 3501: This RFC obsoletes RFC 1939 and defines a new version of the POP3 protocol, known as POP3rev1. It includes some changes and additions to the original protocol, such as support for multi-part messages and the ability to retrieve messages based on various criteria.

RFC 1939 and RFC 3501 cover the core functionality of POP3 and provide a comprehensive overview of the protocol. The following RFCs address security and authentication issues and additional features and authentication mechanisms that can be used with the protocol:

  • RFC 2595: This RFC establishes a mechanism for encrypting POP3 communication using Transport Layer Security (TLS), which provides a secure way to transmit email data between the client and server.
  • RFC 5034: This document defines a protocol extension for secure extension for secure POP3 using TLS, and also specifies SASL mechanisms, including SASL PLAIN and SASL LOGIN, for providing additional authentication mechanisms for POP3.
  • RFC 2449: This RFC determines some extensions to the basic POP3 protocol, including support for extended authentication mechanisms and the ability to retrieve only certain parts of an email (such as the headers) and the ability to authenticate using encrypted passwords.
  • RFC 2195: This defines the CRAM-MD5 (Challenge-Response Authentication Mechanism) authentication mechanism for POP3, which provides a way for clients to authenticate themselves to the server using a shared secret.
  • RFC 4422: defines the SASL framework, which can be used to negotiate the use of different authentication mechanisms, including CRAM-MD5, DIGEST-MD5, and others, with POP3.

While the Requests for Comments highlighted provide a broad outline of the POP3 protocol, there are other RFCs that cover additional features, extensions, and enhancements to the protocol that may be important for specific implementations or use cases.


POP3 Mechanics

POP3 works by allowing email clients to retrieve email messages from an email server. Here's a high-level overview of how the protocol works:

  1. Establish a Connection: The email client establishes a TCP/IP connection to the POP3 server on port 110 (or 995 for the secure version). This connection is used to send commands to the server and receive responses from the server.
  2. Authenticate: The email client sends a user name and password to the server to authenticate itself. This is necessary to prove that the client has permission to access the email account. The server checks the credentials and responds with a positive or negative response.
  3. List Messages: After the email client has successfully authenticated itself with the email server, it typically sends a command to the server to list all the email messages that are available for download. The server responds with a list of message IDs and sizes. The client can use this information to choose which messages to download.
  4. Download Messages: Once the client has identified the messages it wants to download, it sends a separate command to the server for each message, requesting the message by its ID. The server sends the message to the client, which stores it on the user's computer. The client can download multiple messages in a single session.
  5. Delete Messages: Once the email client has finished downloading messages from the server, it can send a separate command to the server for each message it wants to delete, specifying the message ID. The server then marks the message for deletion, but it may not actually remove it from the user's email account until later. This is because POP3 allows users to keep messages on the server even after they have been downloaded, so the server must wait for a separate command from the client to fully remove the messages.
  6. Close the Connection: The email client sends a command to the server to close the connection when it is finished downloading messages. This releases any resources used by the connection and frees up the server to handle other requests.

The server can be configured to either delete messages from the account immediately after they are downloaded, or to keep a copy of the messages on the server until they are deleted manually.


Recently Added Definitions