PowerTCP Mail for .NET
POP3 Protocol
Send comments on this topic.



Glossary Item Box

POP3 Described

POP3 is a protocol used by a client to access and download messages that are held temporarily by the server. You might recall from the Email Short History that POP was developed because SMTP lacked a method of queuing messages on the recipient's mail server. POP provided a system for queuing messages and allowing the user to periodically log in to the mail server, download messages, and log out, thereby greatly reducing the strain on both mail servers and user machines to maintain a constant and resident connection.

A POP session is made up of the client and server exchanging commands and responses, lock-step. The client and mail server continue to exchange commands and responses until the session is terminated. This session can be broken down into three states: authorization state, transaction state, and update state.


POP3 Authorization State

A POP3 session begins with the server (normally) listening for connections on port 110. The authorization state begins when a client makes a TCP connection on port 110 and the server issues a greeting. The client must issue the USER command followed by its user identification. If the server responds with a positive success indicator ("+OK"), the user may issue the PASS command followed by its password. If the server again issues a positive success indicator ("+OK") the server acquires the client's associated maildrop located on the server and the session moves into the transaction state. An example of this follows:

Server: <wait for connection on TCP port 110>

Client: <open connection>

Server: +OK dewey POP3 server ready 

Client: USER mrose 

Server: +OK mrose 

Client: PASS secret 

Server: +OK mrose's maildrop has 2 messages (320 octets) 

At this point the user is logged into the mail server and the mail server has acquired the user's associated maildrop. The session has now entered the transaction state. Using PowerTCP Mail for .NET, the Login method accomplishes all of this.


POP3 Transaction State

The transaction state consists of the client issuing one of several commands and the server responding either positively or negatively. These commands are mainly used to acquire information about the mail located on the mail server, or to retrieve mail from the mail server. Some possible commands are:

The transaction state can take many forms but the following shows a possible dialogue between client and server.

Client: STAT 

Server: +OK 2 320 

Client: LIST 

Server: +OK 2 messages (320 octets) 

Server: 1 120 

Server: 2 200 

Server: . 

Client: RETR 1 

Server: +OK 120 octets 

Server: < the POP3 server sends message 1 > 

Server: . 

Client: DELE 1 

Server: +OK message 1 deleted 

Client: RETR 2 

Server: +OK 200 octets 

Server: < the POP3 server sends message 2 > 

Server: . 

Client: DELE 2 

Server: +OK message 2 deleted 

Client: QUIT 

Once the QUIT command has been issued, the transaction state is over and the session now moves into the update state.


POP3 Update State

In the update state the server will delete all messages marked for deletion, release the resources associated with the client's maildrop, and close the TCP connection.

For more detailed information about the POP3 protocol refer to RFC 1939.

Documentation Version 3.2
© 2010 Dart Communications. All Rights Reserved.