Email Post Office Protocol 3 (POP3)

Elective Proposed protocols were discussed and agreed to, but their application has never come into wide use. This may be due to the lack of wide need for the specific application (RFC-937, The Post Office Protocol)…

– E. Krol; The Hitchhikers Guide to the Internet; RFC 1118; Sept. 1989.

POP3 has become the most common email client connection protocol.

Your email client talks to your email server to send it commands to login, get mail status, and send and receive email. The most common protocol used by email clients to communicate with email servers is the Post Office Protocol, first defined in RFC 918 with Version 2 published as RFC 937, and POP Version 3 published as RFC 1725.

The POP3 protocol enables any email program anywhere on the Internet to connect to any email server to perform the usual email functions, such as reading and sending, as long as they have a valid account and password.

POP3 is an open Internet standard. The common POP3 commands and responses are listed in the following table:



getwelcome ()

Gets the greeting from the server.

user (username)

Login with a username. If valid username, server will respond with request for password.

pass_ (password)

Send password. If valid, server response will be two numbers, message count and mailbox size.

stat ()

Get the mailbox status. Response is two numbers, message count and mailbox size.

list ([message])

Get list of messages. An option “message” gets information on a specific message.

retr (message)

Get message number “message”.

dele (message)

Delete message number “message”.

rset ()

Remove all deleted message markings.

noop ()

No operation. Do nothing. Really. Needed in unusual programming situations.

quit ()

Quit. Commits all changes, unlocks the mailbox, and ends the server connection.

top (message, lines)

Gets just the first “lines” number of lines of message number “message”. Useful on low bandwidth lines to get just the first part of long messages.

uidl ([message])

Gets a unique id list — a message digest including unique ids. The option gets the unique id for the specific message “message”.

You can Telnet into your email provider on port 110 and exchange POP3 commands with your server just as though you were an email application.

Resources. The following resources provide more information about POP3:

  • RFC 1939; “Post Office Protocol — Version 3”; J. Myers, M. Rose; May 1996.
  • RFC 1957; “Some Observations on Implementations of the Post Office Protocol”; R. Nelson; June 1996.
  • RFC 2449; “POP3 Extension Mechanism”; R. Gellens, C. Newman, L. Lundblade; November 1998.