1292 lines
46 KiB
Plaintext
1292 lines
46 KiB
Plaintext
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Network Working Group J. Myers
|
|||
|
Request for Comments: 1939 Carnegie Mellon
|
|||
|
STD: 53 M. Rose
|
|||
|
Obsoletes: 1725 Dover Beach Consulting, Inc.
|
|||
|
Category: Standards Track May 1996
|
|||
|
|
|||
|
|
|||
|
Post Office Protocol - Version 3
|
|||
|
|
|||
|
Status of this Memo
|
|||
|
|
|||
|
This document specifies an Internet standards track protocol for the
|
|||
|
Internet community, and requests discussion and suggestions for
|
|||
|
improvements. Please refer to the current edition of the "Internet
|
|||
|
Official Protocol Standards" (STD 1) for the standardization state
|
|||
|
and status of this protocol. Distribution of this memo is unlimited.
|
|||
|
|
|||
|
Table of Contents
|
|||
|
|
|||
|
1. Introduction ................................................ 2
|
|||
|
2. A Short Digression .......................................... 2
|
|||
|
3. Basic Operation ............................................. 3
|
|||
|
4. The AUTHORIZATION State ..................................... 4
|
|||
|
QUIT Command ................................................ 5
|
|||
|
5. The TRANSACTION State ....................................... 5
|
|||
|
STAT Command ................................................ 6
|
|||
|
LIST Command ................................................ 6
|
|||
|
RETR Command ................................................ 8
|
|||
|
DELE Command ................................................ 8
|
|||
|
NOOP Command ................................................ 9
|
|||
|
RSET Command ................................................ 9
|
|||
|
6. The UPDATE State ............................................ 10
|
|||
|
QUIT Command ................................................ 10
|
|||
|
7. Optional POP3 Commands ...................................... 11
|
|||
|
TOP Command ................................................. 11
|
|||
|
UIDL Command ................................................ 12
|
|||
|
USER Command ................................................ 13
|
|||
|
PASS Command ................................................ 14
|
|||
|
APOP Command ................................................ 15
|
|||
|
8. Scaling and Operational Considerations ...................... 16
|
|||
|
9. POP3 Command Summary ........................................ 18
|
|||
|
10. Example POP3 Session ....................................... 19
|
|||
|
11. Message Format ............................................. 19
|
|||
|
12. References ................................................. 20
|
|||
|
13. Security Considerations .................................... 20
|
|||
|
14. Acknowledgements ........................................... 20
|
|||
|
15. Authors' Addresses ......................................... 21
|
|||
|
Appendix A. Differences from RFC 1725 .......................... 22
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 1]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
Appendix B. Command Index ...................................... 23
|
|||
|
|
|||
|
1. Introduction
|
|||
|
|
|||
|
On certain types of smaller nodes in the Internet it is often
|
|||
|
impractical to maintain a message transport system (MTS). For
|
|||
|
example, a workstation may not have sufficient resources (cycles,
|
|||
|
disk space) in order to permit a SMTP server [RFC821] and associated
|
|||
|
local mail delivery system to be kept resident and continuously
|
|||
|
running. Similarly, it may be expensive (or impossible) to keep a
|
|||
|
personal computer interconnected to an IP-style network for long
|
|||
|
amounts of time (the node is lacking the resource known as
|
|||
|
"connectivity").
|
|||
|
|
|||
|
Despite this, it is often very useful to be able to manage mail on
|
|||
|
these smaller nodes, and they often support a user agent (UA) to aid
|
|||
|
the tasks of mail handling. To solve this problem, a node which can
|
|||
|
support an MTS entity offers a maildrop service to these less endowed
|
|||
|
nodes. The Post Office Protocol - Version 3 (POP3) is intended to
|
|||
|
permit a workstation to dynamically access a maildrop on a server
|
|||
|
host in a useful fashion. Usually, this means that the POP3 protocol
|
|||
|
is used to allow a workstation to retrieve mail that the server is
|
|||
|
holding for it.
|
|||
|
|
|||
|
POP3 is not intended to provide extensive manipulation operations of
|
|||
|
mail on the server; normally, mail is downloaded and then deleted. A
|
|||
|
more advanced (and complex) protocol, IMAP4, is discussed in
|
|||
|
[RFC1730].
|
|||
|
|
|||
|
For the remainder of this memo, the term "client host" refers to a
|
|||
|
host making use of the POP3 service, while the term "server host"
|
|||
|
refers to a host which offers the POP3 service.
|
|||
|
|
|||
|
2. A Short Digression
|
|||
|
|
|||
|
This memo does not specify how a client host enters mail into the
|
|||
|
transport system, although a method consistent with the philosophy of
|
|||
|
this memo is presented here:
|
|||
|
|
|||
|
When the user agent on a client host wishes to enter a message
|
|||
|
into the transport system, it establishes an SMTP connection to
|
|||
|
its relay host and sends all mail to it. This relay host could
|
|||
|
be, but need not be, the POP3 server host for the client host. Of
|
|||
|
course, the relay host must accept mail for delivery to arbitrary
|
|||
|
recipient addresses, that functionality is not required of all
|
|||
|
SMTP servers.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 2]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
3. Basic Operation
|
|||
|
|
|||
|
Initially, the server host starts the POP3 service by listening on
|
|||
|
TCP port 110. When a client host wishes to make use of the service,
|
|||
|
it establishes a TCP connection with the server host. When the
|
|||
|
connection is established, the POP3 server sends a greeting. The
|
|||
|
client and POP3 server then exchange commands and responses
|
|||
|
(respectively) until the connection is closed or aborted.
|
|||
|
|
|||
|
Commands in the POP3 consist of a case-insensitive keyword, possibly
|
|||
|
followed by one or more arguments. All commands are terminated by a
|
|||
|
CRLF pair. Keywords and arguments consist of printable ASCII
|
|||
|
characters. Keywords and arguments are each separated by a single
|
|||
|
SPACE character. Keywords are three or four characters long. Each
|
|||
|
argument may be up to 40 characters long.
|
|||
|
|
|||
|
Responses in the POP3 consist of a status indicator and a keyword
|
|||
|
possibly followed by additional information. All responses are
|
|||
|
terminated by a CRLF pair. Responses may be up to 512 characters
|
|||
|
long, including the terminating CRLF. There are currently two status
|
|||
|
indicators: positive ("+OK") and negative ("-ERR"). Servers MUST
|
|||
|
send the "+OK" and "-ERR" in upper case.
|
|||
|
|
|||
|
Responses to certain commands are multi-line. In these cases, which
|
|||
|
are clearly indicated below, after sending the first line of the
|
|||
|
response and a CRLF, any additional lines are sent, each terminated
|
|||
|
by a CRLF pair. When all lines of the response have been sent, a
|
|||
|
final line is sent, consisting of a termination octet (decimal code
|
|||
|
046, ".") and a CRLF pair. If any line of the multi-line response
|
|||
|
begins with the termination octet, the line is "byte-stuffed" by
|
|||
|
pre-pending the termination octet to that line of the response.
|
|||
|
Hence a multi-line response is terminated with the five octets
|
|||
|
"CRLF.CRLF". When examining a multi-line response, the client checks
|
|||
|
to see if the line begins with the termination octet. If so and if
|
|||
|
octets other than CRLF follow, the first octet of the line (the
|
|||
|
termination octet) is stripped away. If so and if CRLF immediately
|
|||
|
follows the termination character, then the response from the POP
|
|||
|
server is ended and the line containing ".CRLF" is not considered
|
|||
|
part of the multi-line response.
|
|||
|
|
|||
|
A POP3 session progresses through a number of states during its
|
|||
|
lifetime. Once the TCP connection has been opened and the POP3
|
|||
|
server has sent the greeting, the session enters the AUTHORIZATION
|
|||
|
state. In this state, the client must identify itself to the POP3
|
|||
|
server. Once the client has successfully done this, the server
|
|||
|
acquires resources associated with the client's maildrop, and the
|
|||
|
session enters the TRANSACTION state. In this state, the client
|
|||
|
requests actions on the part of the POP3 server. When the client has
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 3]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
issued the QUIT command, the session enters the UPDATE state. In
|
|||
|
this state, the POP3 server releases any resources acquired during
|
|||
|
the TRANSACTION state and says goodbye. The TCP connection is then
|
|||
|
closed.
|
|||
|
|
|||
|
A server MUST respond to an unrecognized, unimplemented, or
|
|||
|
syntactically invalid command by responding with a negative status
|
|||
|
indicator. A server MUST respond to a command issued when the
|
|||
|
session is in an incorrect state by responding with a negative status
|
|||
|
indicator. There is no general method for a client to distinguish
|
|||
|
between a server which does not implement an optional command and a
|
|||
|
server which is unwilling or unable to process the command.
|
|||
|
|
|||
|
A POP3 server MAY have an inactivity autologout timer. Such a timer
|
|||
|
MUST be of at least 10 minutes' duration. The receipt of any command
|
|||
|
from the client during that interval should suffice to reset the
|
|||
|
autologout timer. When the timer expires, the session does NOT enter
|
|||
|
the UPDATE state--the server should close the TCP connection without
|
|||
|
removing any messages or sending any response to the client.
|
|||
|
|
|||
|
4. The AUTHORIZATION State
|
|||
|
|
|||
|
Once the TCP connection has been opened by a POP3 client, the POP3
|
|||
|
server issues a one line greeting. This can be any positive
|
|||
|
response. An example might be:
|
|||
|
|
|||
|
S: +OK POP3 server ready
|
|||
|
|
|||
|
The POP3 session is now in the AUTHORIZATION state. The client must
|
|||
|
now identify and authenticate itself to the POP3 server. Two
|
|||
|
possible mechanisms for doing this are described in this document,
|
|||
|
the USER and PASS command combination and the APOP command. Both
|
|||
|
mechanisms are described later in this document. Additional
|
|||
|
authentication mechanisms are described in [RFC1734]. While there is
|
|||
|
no single authentication mechanism that is required of all POP3
|
|||
|
servers, a POP3 server must of course support at least one
|
|||
|
authentication mechanism.
|
|||
|
|
|||
|
Once the POP3 server has determined through the use of any
|
|||
|
authentication command that the client should be given access to the
|
|||
|
appropriate maildrop, the POP3 server then acquires an exclusive-
|
|||
|
access lock on the maildrop, as necessary to prevent messages from
|
|||
|
being modified or removed before the session enters the UPDATE state.
|
|||
|
If the lock is successfully acquired, the POP3 server responds with a
|
|||
|
positive status indicator. The POP3 session now enters the
|
|||
|
TRANSACTION state, with no messages marked as deleted. If the
|
|||
|
maildrop cannot be opened for some reason (for example, a lock can
|
|||
|
not be acquired, the client is denied access to the appropriate
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 4]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
maildrop, or the maildrop cannot be parsed), the POP3 server responds
|
|||
|
with a negative status indicator. (If a lock was acquired but the
|
|||
|
POP3 server intends to respond with a negative status indicator, the
|
|||
|
POP3 server must release the lock prior to rejecting the command.)
|
|||
|
After returning a negative status indicator, the server may close the
|
|||
|
connection. If the server does not close the connection, the client
|
|||
|
may either issue a new authentication command and start again, or the
|
|||
|
client may issue the QUIT command.
|
|||
|
|
|||
|
After the POP3 server has opened the maildrop, it assigns a message-
|
|||
|
number to each message, and notes the size of each message in octets.
|
|||
|
The first message in the maildrop is assigned a message-number of
|
|||
|
"1", the second is assigned "2", and so on, so that the nth message
|
|||
|
in a maildrop is assigned a message-number of "n". In POP3 commands
|
|||
|
and responses, all message-numbers and message sizes are expressed in
|
|||
|
base-10 (i.e., decimal).
|
|||
|
|
|||
|
Here is the summary for the QUIT command when used in the
|
|||
|
AUTHORIZATION state:
|
|||
|
|
|||
|
QUIT
|
|||
|
|
|||
|
Arguments: none
|
|||
|
|
|||
|
Restrictions: none
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK
|
|||
|
|
|||
|
Examples:
|
|||
|
C: QUIT
|
|||
|
S: +OK dewey POP3 server signing off
|
|||
|
|
|||
|
5. The TRANSACTION State
|
|||
|
|
|||
|
Once the client has successfully identified itself to the POP3 server
|
|||
|
and the POP3 server has locked and opened the appropriate maildrop,
|
|||
|
the POP3 session is now in the TRANSACTION state. The client may now
|
|||
|
issue any of the following POP3 commands repeatedly. After each
|
|||
|
command, the POP3 server issues a response. Eventually, the client
|
|||
|
issues the QUIT command and the POP3 session enters the UPDATE state.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 5]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
Here are the POP3 commands valid in the TRANSACTION state:
|
|||
|
|
|||
|
STAT
|
|||
|
|
|||
|
Arguments: none
|
|||
|
|
|||
|
Restrictions:
|
|||
|
may only be given in the TRANSACTION state
|
|||
|
|
|||
|
Discussion:
|
|||
|
The POP3 server issues a positive response with a line
|
|||
|
containing information for the maildrop. This line is
|
|||
|
called a "drop listing" for that maildrop.
|
|||
|
|
|||
|
In order to simplify parsing, all POP3 servers are
|
|||
|
required to use a certain format for drop listings. The
|
|||
|
positive response consists of "+OK" followed by a single
|
|||
|
space, the number of messages in the maildrop, a single
|
|||
|
space, and the size of the maildrop in octets. This memo
|
|||
|
makes no requirement on what follows the maildrop size.
|
|||
|
Minimal implementations should just end that line of the
|
|||
|
response with a CRLF pair. More advanced implementations
|
|||
|
may include other information.
|
|||
|
|
|||
|
NOTE: This memo STRONGLY discourages implementations
|
|||
|
from supplying additional information in the drop
|
|||
|
listing. Other, optional, facilities are discussed
|
|||
|
later on which permit the client to parse the messages
|
|||
|
in the maildrop.
|
|||
|
|
|||
|
Note that messages marked as deleted are not counted in
|
|||
|
either total.
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK nn mm
|
|||
|
|
|||
|
Examples:
|
|||
|
C: STAT
|
|||
|
S: +OK 2 320
|
|||
|
|
|||
|
|
|||
|
LIST [msg]
|
|||
|
|
|||
|
Arguments:
|
|||
|
a message-number (optional), which, if present, may NOT
|
|||
|
refer to a message marked as deleted
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 6]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
Restrictions:
|
|||
|
may only be given in the TRANSACTION state
|
|||
|
|
|||
|
Discussion:
|
|||
|
If an argument was given and the POP3 server issues a
|
|||
|
positive response with a line containing information for
|
|||
|
that message. This line is called a "scan listing" for
|
|||
|
that message.
|
|||
|
|
|||
|
If no argument was given and the POP3 server issues a
|
|||
|
positive response, then the response given is multi-line.
|
|||
|
After the initial +OK, for each message in the maildrop,
|
|||
|
the POP3 server responds with a line containing
|
|||
|
information for that message. This line is also called a
|
|||
|
"scan listing" for that message. If there are no
|
|||
|
messages in the maildrop, then the POP3 server responds
|
|||
|
with no scan listings--it issues a positive response
|
|||
|
followed by a line containing a termination octet and a
|
|||
|
CRLF pair.
|
|||
|
|
|||
|
In order to simplify parsing, all POP3 servers are
|
|||
|
required to use a certain format for scan listings. A
|
|||
|
scan listing consists of the message-number of the
|
|||
|
message, followed by a single space and the exact size of
|
|||
|
the message in octets. Methods for calculating the exact
|
|||
|
size of the message are described in the "Message Format"
|
|||
|
section below. This memo makes no requirement on what
|
|||
|
follows the message size in the scan listing. Minimal
|
|||
|
implementations should just end that line of the response
|
|||
|
with a CRLF pair. More advanced implementations may
|
|||
|
include other information, as parsed from the message.
|
|||
|
|
|||
|
NOTE: This memo STRONGLY discourages implementations
|
|||
|
from supplying additional information in the scan
|
|||
|
listing. Other, optional, facilities are discussed
|
|||
|
later on which permit the client to parse the messages
|
|||
|
in the maildrop.
|
|||
|
|
|||
|
Note that messages marked as deleted are not listed.
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK scan listing follows
|
|||
|
-ERR no such message
|
|||
|
|
|||
|
Examples:
|
|||
|
C: LIST
|
|||
|
S: +OK 2 messages (320 octets)
|
|||
|
S: 1 120
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 7]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
S: 2 200
|
|||
|
S: .
|
|||
|
...
|
|||
|
C: LIST 2
|
|||
|
S: +OK 2 200
|
|||
|
...
|
|||
|
C: LIST 3
|
|||
|
S: -ERR no such message, only 2 messages in maildrop
|
|||
|
|
|||
|
|
|||
|
RETR msg
|
|||
|
|
|||
|
Arguments:
|
|||
|
a message-number (required) which may NOT refer to a
|
|||
|
message marked as deleted
|
|||
|
|
|||
|
Restrictions:
|
|||
|
may only be given in the TRANSACTION state
|
|||
|
|
|||
|
Discussion:
|
|||
|
If the POP3 server issues a positive response, then the
|
|||
|
response given is multi-line. After the initial +OK, the
|
|||
|
POP3 server sends the message corresponding to the given
|
|||
|
message-number, being careful to byte-stuff the termination
|
|||
|
character (as with all multi-line responses).
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK message follows
|
|||
|
-ERR no such message
|
|||
|
|
|||
|
Examples:
|
|||
|
C: RETR 1
|
|||
|
S: +OK 120 octets
|
|||
|
S: <the POP3 server sends the entire message here>
|
|||
|
S: .
|
|||
|
|
|||
|
|
|||
|
DELE msg
|
|||
|
|
|||
|
Arguments:
|
|||
|
a message-number (required) which may NOT refer to a
|
|||
|
message marked as deleted
|
|||
|
|
|||
|
Restrictions:
|
|||
|
may only be given in the TRANSACTION state
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 8]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
Discussion:
|
|||
|
The POP3 server marks the message as deleted. Any future
|
|||
|
reference to the message-number associated with the message
|
|||
|
in a POP3 command generates an error. The POP3 server does
|
|||
|
not actually delete the message until the POP3 session
|
|||
|
enters the UPDATE state.
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK message deleted
|
|||
|
-ERR no such message
|
|||
|
|
|||
|
Examples:
|
|||
|
C: DELE 1
|
|||
|
S: +OK message 1 deleted
|
|||
|
...
|
|||
|
C: DELE 2
|
|||
|
S: -ERR message 2 already deleted
|
|||
|
|
|||
|
|
|||
|
NOOP
|
|||
|
|
|||
|
Arguments: none
|
|||
|
|
|||
|
Restrictions:
|
|||
|
may only be given in the TRANSACTION state
|
|||
|
|
|||
|
Discussion:
|
|||
|
The POP3 server does nothing, it merely replies with a
|
|||
|
positive response.
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK
|
|||
|
|
|||
|
Examples:
|
|||
|
C: NOOP
|
|||
|
S: +OK
|
|||
|
|
|||
|
|
|||
|
RSET
|
|||
|
|
|||
|
Arguments: none
|
|||
|
|
|||
|
Restrictions:
|
|||
|
may only be given in the TRANSACTION state
|
|||
|
|
|||
|
Discussion:
|
|||
|
If any messages have been marked as deleted by the POP3
|
|||
|
server, they are unmarked. The POP3 server then replies
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 9]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
with a positive response.
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK
|
|||
|
|
|||
|
Examples:
|
|||
|
C: RSET
|
|||
|
S: +OK maildrop has 2 messages (320 octets)
|
|||
|
|
|||
|
6. The UPDATE State
|
|||
|
|
|||
|
When the client issues the QUIT command from the TRANSACTION state,
|
|||
|
the POP3 session enters the UPDATE state. (Note that if the client
|
|||
|
issues the QUIT command from the AUTHORIZATION state, the POP3
|
|||
|
session terminates but does NOT enter the UPDATE state.)
|
|||
|
|
|||
|
If a session terminates for some reason other than a client-issued
|
|||
|
QUIT command, the POP3 session does NOT enter the UPDATE state and
|
|||
|
MUST not remove any messages from the maildrop.
|
|||
|
|
|||
|
QUIT
|
|||
|
|
|||
|
Arguments: none
|
|||
|
|
|||
|
Restrictions: none
|
|||
|
|
|||
|
Discussion:
|
|||
|
The POP3 server removes all messages marked as deleted
|
|||
|
from the maildrop and replies as to the status of this
|
|||
|
operation. If there is an error, such as a resource
|
|||
|
shortage, encountered while removing messages, the
|
|||
|
maildrop may result in having some or none of the messages
|
|||
|
marked as deleted be removed. In no case may the server
|
|||
|
remove any messages not marked as deleted.
|
|||
|
|
|||
|
Whether the removal was successful or not, the server
|
|||
|
then releases any exclusive-access lock on the maildrop
|
|||
|
and closes the TCP connection.
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK
|
|||
|
-ERR some deleted messages not removed
|
|||
|
|
|||
|
Examples:
|
|||
|
C: QUIT
|
|||
|
S: +OK dewey POP3 server signing off (maildrop empty)
|
|||
|
...
|
|||
|
C: QUIT
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 10]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
S: +OK dewey POP3 server signing off (2 messages left)
|
|||
|
...
|
|||
|
|
|||
|
7. Optional POP3 Commands
|
|||
|
|
|||
|
The POP3 commands discussed above must be supported by all minimal
|
|||
|
implementations of POP3 servers.
|
|||
|
|
|||
|
The optional POP3 commands described below permit a POP3 client
|
|||
|
greater freedom in message handling, while preserving a simple POP3
|
|||
|
server implementation.
|
|||
|
|
|||
|
NOTE: This memo STRONGLY encourages implementations to support
|
|||
|
these commands in lieu of developing augmented drop and scan
|
|||
|
listings. In short, the philosophy of this memo is to put
|
|||
|
intelligence in the part of the POP3 client and not the POP3
|
|||
|
server.
|
|||
|
|
|||
|
TOP msg n
|
|||
|
|
|||
|
Arguments:
|
|||
|
a message-number (required) which may NOT refer to to a
|
|||
|
message marked as deleted, and a non-negative number
|
|||
|
of lines (required)
|
|||
|
|
|||
|
Restrictions:
|
|||
|
may only be given in the TRANSACTION state
|
|||
|
|
|||
|
Discussion:
|
|||
|
If the POP3 server issues a positive response, then the
|
|||
|
response given is multi-line. After the initial +OK, the
|
|||
|
POP3 server sends the headers of the message, the blank
|
|||
|
line separating the headers from the body, and then the
|
|||
|
number of lines of the indicated message's body, being
|
|||
|
careful to byte-stuff the termination character (as with
|
|||
|
all multi-line responses).
|
|||
|
|
|||
|
Note that if the number of lines requested by the POP3
|
|||
|
client is greater than than the number of lines in the
|
|||
|
body, then the POP3 server sends the entire message.
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK top of message follows
|
|||
|
-ERR no such message
|
|||
|
|
|||
|
Examples:
|
|||
|
C: TOP 1 10
|
|||
|
S: +OK
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 11]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
S: <the POP3 server sends the headers of the
|
|||
|
message, a blank line, and the first 10 lines
|
|||
|
of the body of the message>
|
|||
|
S: .
|
|||
|
...
|
|||
|
C: TOP 100 3
|
|||
|
S: -ERR no such message
|
|||
|
|
|||
|
|
|||
|
UIDL [msg]
|
|||
|
|
|||
|
Arguments:
|
|||
|
a message-number (optional), which, if present, may NOT
|
|||
|
refer to a message marked as deleted
|
|||
|
|
|||
|
Restrictions:
|
|||
|
may only be given in the TRANSACTION state.
|
|||
|
|
|||
|
Discussion:
|
|||
|
If an argument was given and the POP3 server issues a positive
|
|||
|
response with a line containing information for that message.
|
|||
|
This line is called a "unique-id listing" for that message.
|
|||
|
|
|||
|
If no argument was given and the POP3 server issues a positive
|
|||
|
response, then the response given is multi-line. After the
|
|||
|
initial +OK, for each message in the maildrop, the POP3 server
|
|||
|
responds with a line containing information for that message.
|
|||
|
This line is called a "unique-id listing" for that message.
|
|||
|
|
|||
|
In order to simplify parsing, all POP3 servers are required to
|
|||
|
use a certain format for unique-id listings. A unique-id
|
|||
|
listing consists of the message-number of the message,
|
|||
|
followed by a single space and the unique-id of the message.
|
|||
|
No information follows the unique-id in the unique-id listing.
|
|||
|
|
|||
|
The unique-id of a message is an arbitrary server-determined
|
|||
|
string, consisting of one to 70 characters in the range 0x21
|
|||
|
to 0x7E, which uniquely identifies a message within a
|
|||
|
maildrop and which persists across sessions. This
|
|||
|
persistence is required even if a session ends without
|
|||
|
entering the UPDATE state. The server should never reuse an
|
|||
|
unique-id in a given maildrop, for as long as the entity
|
|||
|
using the unique-id exists.
|
|||
|
|
|||
|
Note that messages marked as deleted are not listed.
|
|||
|
|
|||
|
While it is generally preferable for server implementations
|
|||
|
to store arbitrarily assigned unique-ids in the maildrop,
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 12]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
this specification is intended to permit unique-ids to be
|
|||
|
calculated as a hash of the message. Clients should be able
|
|||
|
to handle a situation where two identical copies of a
|
|||
|
message in a maildrop have the same unique-id.
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK unique-id listing follows
|
|||
|
-ERR no such message
|
|||
|
|
|||
|
Examples:
|
|||
|
C: UIDL
|
|||
|
S: +OK
|
|||
|
S: 1 whqtswO00WBw418f9t5JxYwZ
|
|||
|
S: 2 QhdPYR:00WBw1Ph7x7
|
|||
|
S: .
|
|||
|
...
|
|||
|
C: UIDL 2
|
|||
|
S: +OK 2 QhdPYR:00WBw1Ph7x7
|
|||
|
...
|
|||
|
C: UIDL 3
|
|||
|
S: -ERR no such message, only 2 messages in maildrop
|
|||
|
|
|||
|
|
|||
|
USER name
|
|||
|
|
|||
|
Arguments:
|
|||
|
a string identifying a mailbox (required), which is of
|
|||
|
significance ONLY to the server
|
|||
|
|
|||
|
Restrictions:
|
|||
|
may only be given in the AUTHORIZATION state after the POP3
|
|||
|
greeting or after an unsuccessful USER or PASS command
|
|||
|
|
|||
|
Discussion:
|
|||
|
To authenticate using the USER and PASS command
|
|||
|
combination, the client must first issue the USER
|
|||
|
command. If the POP3 server responds with a positive
|
|||
|
status indicator ("+OK"), then the client may issue
|
|||
|
either the PASS command to complete the authentication,
|
|||
|
or the QUIT command to terminate the POP3 session. If
|
|||
|
the POP3 server responds with a negative status indicator
|
|||
|
("-ERR") to the USER command, then the client may either
|
|||
|
issue a new authentication command or may issue the QUIT
|
|||
|
command.
|
|||
|
|
|||
|
The server may return a positive response even though no
|
|||
|
such mailbox exists. The server may return a negative
|
|||
|
response if mailbox exists, but does not permit plaintext
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 13]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
password authentication.
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK name is a valid mailbox
|
|||
|
-ERR never heard of mailbox name
|
|||
|
|
|||
|
Examples:
|
|||
|
C: USER frated
|
|||
|
S: -ERR sorry, no mailbox for frated here
|
|||
|
...
|
|||
|
C: USER mrose
|
|||
|
S: +OK mrose is a real hoopy frood
|
|||
|
|
|||
|
|
|||
|
PASS string
|
|||
|
|
|||
|
Arguments:
|
|||
|
a server/mailbox-specific password (required)
|
|||
|
|
|||
|
Restrictions:
|
|||
|
may only be given in the AUTHORIZATION state immediately
|
|||
|
after a successful USER command
|
|||
|
|
|||
|
Discussion:
|
|||
|
When the client issues the PASS command, the POP3 server
|
|||
|
uses the argument pair from the USER and PASS commands to
|
|||
|
determine if the client should be given access to the
|
|||
|
appropriate maildrop.
|
|||
|
|
|||
|
Since the PASS command has exactly one argument, a POP3
|
|||
|
server may treat spaces in the argument as part of the
|
|||
|
password, instead of as argument separators.
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK maildrop locked and ready
|
|||
|
-ERR invalid password
|
|||
|
-ERR unable to lock maildrop
|
|||
|
|
|||
|
Examples:
|
|||
|
C: USER mrose
|
|||
|
S: +OK mrose is a real hoopy frood
|
|||
|
C: PASS secret
|
|||
|
S: -ERR maildrop already locked
|
|||
|
...
|
|||
|
C: USER mrose
|
|||
|
S: +OK mrose is a real hoopy frood
|
|||
|
C: PASS secret
|
|||
|
S: +OK mrose's maildrop has 2 messages (320 octets)
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 14]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
APOP name digest
|
|||
|
|
|||
|
Arguments:
|
|||
|
a string identifying a mailbox and a MD5 digest string
|
|||
|
(both required)
|
|||
|
|
|||
|
Restrictions:
|
|||
|
may only be given in the AUTHORIZATION state after the POP3
|
|||
|
greeting or after an unsuccessful USER or PASS command
|
|||
|
|
|||
|
Discussion:
|
|||
|
Normally, each POP3 session starts with a USER/PASS
|
|||
|
exchange. This results in a server/user-id specific
|
|||
|
password being sent in the clear on the network. For
|
|||
|
intermittent use of POP3, this may not introduce a sizable
|
|||
|
risk. However, many POP3 client implementations connect to
|
|||
|
the POP3 server on a regular basis -- to check for new
|
|||
|
mail. Further the interval of session initiation may be on
|
|||
|
the order of five minutes. Hence, the risk of password
|
|||
|
capture is greatly enhanced.
|
|||
|
|
|||
|
An alternate method of authentication is required which
|
|||
|
provides for both origin authentication and replay
|
|||
|
protection, but which does not involve sending a password
|
|||
|
in the clear over the network. The APOP command provides
|
|||
|
this functionality.
|
|||
|
|
|||
|
A POP3 server which implements the APOP command will
|
|||
|
include a timestamp in its banner greeting. The syntax of
|
|||
|
the timestamp corresponds to the `msg-id' in [RFC822], and
|
|||
|
MUST be different each time the POP3 server issues a banner
|
|||
|
greeting. For example, on a UNIX implementation in which a
|
|||
|
separate UNIX process is used for each instance of a POP3
|
|||
|
server, the syntax of the timestamp might be:
|
|||
|
|
|||
|
<process-ID.clock@hostname>
|
|||
|
|
|||
|
where `process-ID' is the decimal value of the process's
|
|||
|
PID, clock is the decimal value of the system clock, and
|
|||
|
hostname is the fully-qualified domain-name corresponding
|
|||
|
to the host where the POP3 server is running.
|
|||
|
|
|||
|
The POP3 client makes note of this timestamp, and then
|
|||
|
issues the APOP command. The `name' parameter has
|
|||
|
identical semantics to the `name' parameter of the USER
|
|||
|
command. The `digest' parameter is calculated by applying
|
|||
|
the MD5 algorithm [RFC1321] to a string consisting of the
|
|||
|
timestamp (including angle-brackets) followed by a shared
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 15]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
secret. This shared secret is a string known only to the
|
|||
|
POP3 client and server. Great care should be taken to
|
|||
|
prevent unauthorized disclosure of the secret, as knowledge
|
|||
|
of the secret will allow any entity to successfully
|
|||
|
masquerade as the named user. The `digest' parameter
|
|||
|
itself is a 16-octet value which is sent in hexadecimal
|
|||
|
format, using lower-case ASCII characters.
|
|||
|
|
|||
|
When the POP3 server receives the APOP command, it verifies
|
|||
|
the digest provided. If the digest is correct, the POP3
|
|||
|
server issues a positive response, and the POP3 session
|
|||
|
enters the TRANSACTION state. Otherwise, a negative
|
|||
|
response is issued and the POP3 session remains in the
|
|||
|
AUTHORIZATION state.
|
|||
|
|
|||
|
Note that as the length of the shared secret increases, so
|
|||
|
does the difficulty of deriving it. As such, shared
|
|||
|
secrets should be long strings (considerably longer than
|
|||
|
the 8-character example shown below).
|
|||
|
|
|||
|
Possible Responses:
|
|||
|
+OK maildrop locked and ready
|
|||
|
-ERR permission denied
|
|||
|
|
|||
|
Examples:
|
|||
|
S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
|
|||
|
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb
|
|||
|
S: +OK maildrop has 1 message (369 octets)
|
|||
|
|
|||
|
In this example, the shared secret is the string `tan-
|
|||
|
staaf'. Hence, the MD5 algorithm is applied to the string
|
|||
|
|
|||
|
<1896.697170952@dbc.mtview.ca.us>tanstaaf
|
|||
|
|
|||
|
which produces a digest value of
|
|||
|
|
|||
|
c4c9334bac560ecc979e58001b3e22fb
|
|||
|
|
|||
|
8. Scaling and Operational Considerations
|
|||
|
|
|||
|
Since some of the optional features described above were added to the
|
|||
|
POP3 protocol, experience has accumulated in using them in large-
|
|||
|
scale commercial post office operations where most of the users are
|
|||
|
unrelated to each other. In these situations and others, users and
|
|||
|
vendors of POP3 clients have discovered that the combination of using
|
|||
|
the UIDL command and not issuing the DELE command can provide a weak
|
|||
|
version of the "maildrop as semi-permanent repository" functionality
|
|||
|
normally associated with IMAP. Of course the other capabilities of
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 16]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
IMAP, such as polling an existing connection for newly arrived
|
|||
|
messages and supporting multiple folders on the server, are not
|
|||
|
present in POP3.
|
|||
|
|
|||
|
When these facilities are used in this way by casual users, there has
|
|||
|
been a tendency for already-read messages to accumulate on the server
|
|||
|
without bound. This is clearly an undesirable behavior pattern from
|
|||
|
the standpoint of the server operator. This situation is aggravated
|
|||
|
by the fact that the limited capabilities of the POP3 do not permit
|
|||
|
efficient handling of maildrops which have hundreds or thousands of
|
|||
|
messages.
|
|||
|
|
|||
|
Consequently, it is recommended that operators of large-scale multi-
|
|||
|
user servers, especially ones in which the user's only access to the
|
|||
|
maildrop is via POP3, consider such options as:
|
|||
|
|
|||
|
* Imposing a per-user maildrop storage quota or the like.
|
|||
|
|
|||
|
A disadvantage to this option is that accumulation of messages may
|
|||
|
result in the user's inability to receive new ones into the
|
|||
|
maildrop. Sites which choose this option should be sure to inform
|
|||
|
users of impending or current exhaustion of quota, perhaps by
|
|||
|
inserting an appropriate message into the user's maildrop.
|
|||
|
|
|||
|
* Enforce a site policy regarding mail retention on the server.
|
|||
|
|
|||
|
Sites are free to establish local policy regarding the storage and
|
|||
|
retention of messages on the server, both read and unread. For
|
|||
|
example, a site might delete unread messages from the server after
|
|||
|
60 days and delete read messages after 7 days. Such message
|
|||
|
deletions are outside the scope of the POP3 protocol and are not
|
|||
|
considered a protocol violation.
|
|||
|
|
|||
|
Server operators enforcing message deletion policies should take
|
|||
|
care to make all users aware of the policies in force.
|
|||
|
|
|||
|
Clients must not assume that a site policy will automate message
|
|||
|
deletions, and should continue to explicitly delete messages using
|
|||
|
the DELE command when appropriate.
|
|||
|
|
|||
|
It should be noted that enforcing site message deletion policies
|
|||
|
may be confusing to the user community, since their POP3 client
|
|||
|
may contain configuration options to leave mail on the server
|
|||
|
which will not in fact be supported by the server.
|
|||
|
|
|||
|
One special case of a site policy is that messages may only be
|
|||
|
downloaded once from the server, and are deleted after this has
|
|||
|
been accomplished. This could be implemented in POP3 server
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 17]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
software by the following mechanism: "following a POP3 login by a
|
|||
|
client which was ended by a QUIT, delete all messages downloaded
|
|||
|
during the session with the RETR command". It is important not to
|
|||
|
delete messages in the event of abnormal connection termination
|
|||
|
(ie, if no QUIT was received from the client) because the client
|
|||
|
may not have successfully received or stored the messages.
|
|||
|
Servers implementing a download-and-delete policy may also wish to
|
|||
|
disable or limit the optional TOP command, since it could be used
|
|||
|
as an alternate mechanism to download entire messages.
|
|||
|
|
|||
|
9. POP3 Command Summary
|
|||
|
|
|||
|
Minimal POP3 Commands:
|
|||
|
|
|||
|
USER name valid in the AUTHORIZATION state
|
|||
|
PASS string
|
|||
|
QUIT
|
|||
|
|
|||
|
STAT valid in the TRANSACTION state
|
|||
|
LIST [msg]
|
|||
|
RETR msg
|
|||
|
DELE msg
|
|||
|
NOOP
|
|||
|
RSET
|
|||
|
QUIT
|
|||
|
|
|||
|
Optional POP3 Commands:
|
|||
|
|
|||
|
APOP name digest valid in the AUTHORIZATION state
|
|||
|
|
|||
|
TOP msg n valid in the TRANSACTION state
|
|||
|
UIDL [msg]
|
|||
|
|
|||
|
POP3 Replies:
|
|||
|
|
|||
|
+OK
|
|||
|
-ERR
|
|||
|
|
|||
|
Note that with the exception of the STAT, LIST, and UIDL commands,
|
|||
|
the reply given by the POP3 server to any command is significant
|
|||
|
only to "+OK" and "-ERR". Any text occurring after this reply
|
|||
|
may be ignored by the client.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 18]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
10. Example POP3 Session
|
|||
|
|
|||
|
S: <wait for connection on TCP port 110>
|
|||
|
C: <open connection>
|
|||
|
S: +OK POP3 server ready <1896.697170952@dbc.mtview.ca.us>
|
|||
|
C: APOP mrose c4c9334bac560ecc979e58001b3e22fb
|
|||
|
S: +OK mrose's maildrop has 2 messages (320 octets)
|
|||
|
C: STAT
|
|||
|
S: +OK 2 320
|
|||
|
C: LIST
|
|||
|
S: +OK 2 messages (320 octets)
|
|||
|
S: 1 120
|
|||
|
S: 2 200
|
|||
|
S: .
|
|||
|
C: RETR 1
|
|||
|
S: +OK 120 octets
|
|||
|
S: <the POP3 server sends message 1>
|
|||
|
S: .
|
|||
|
C: DELE 1
|
|||
|
S: +OK message 1 deleted
|
|||
|
C: RETR 2
|
|||
|
S: +OK 200 octets
|
|||
|
S: <the POP3 server sends message 2>
|
|||
|
S: .
|
|||
|
C: DELE 2
|
|||
|
S: +OK message 2 deleted
|
|||
|
C: QUIT
|
|||
|
S: +OK dewey POP3 server signing off (maildrop empty)
|
|||
|
C: <close connection>
|
|||
|
S: <wait for next connection>
|
|||
|
|
|||
|
11. Message Format
|
|||
|
|
|||
|
All messages transmitted during a POP3 session are assumed to conform
|
|||
|
to the standard for the format of Internet text messages [RFC822].
|
|||
|
|
|||
|
It is important to note that the octet count for a message on the
|
|||
|
server host may differ from the octet count assigned to that message
|
|||
|
due to local conventions for designating end-of-line. Usually,
|
|||
|
during the AUTHORIZATION state of the POP3 session, the POP3 server
|
|||
|
can calculate the size of each message in octets when it opens the
|
|||
|
maildrop. For example, if the POP3 server host internally represents
|
|||
|
end-of-line as a single character, then the POP3 server simply counts
|
|||
|
each occurrence of this character in a message as two octets. Note
|
|||
|
that lines in the message which start with the termination octet need
|
|||
|
not (and must not) be counted twice, since the POP3 client will
|
|||
|
remove all byte-stuffed termination characters when it receives a
|
|||
|
multi-line response.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 19]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
12. References
|
|||
|
|
|||
|
[RFC821] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC
|
|||
|
821, USC/Information Sciences Institute, August 1982.
|
|||
|
|
|||
|
[RFC822] Crocker, D., "Standard for the Format of ARPA-Internet Text
|
|||
|
Messages", STD 11, RFC 822, University of Delaware, August 1982.
|
|||
|
|
|||
|
[RFC1321] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321,
|
|||
|
MIT Laboratory for Computer Science, April 1992.
|
|||
|
|
|||
|
[RFC1730] Crispin, M., "Internet Message Access Protocol - Version
|
|||
|
4", RFC 1730, University of Washington, December 1994.
|
|||
|
|
|||
|
[RFC1734] Myers, J., "POP3 AUTHentication command", RFC 1734,
|
|||
|
Carnegie Mellon, December 1994.
|
|||
|
|
|||
|
13. Security Considerations
|
|||
|
|
|||
|
It is conjectured that use of the APOP command provides origin
|
|||
|
identification and replay protection for a POP3 session.
|
|||
|
Accordingly, a POP3 server which implements both the PASS and APOP
|
|||
|
commands should not allow both methods of access for a given user;
|
|||
|
that is, for a given mailbox name, either the USER/PASS command
|
|||
|
sequence or the APOP command is allowed, but not both.
|
|||
|
|
|||
|
Further, note that as the length of the shared secret increases, so
|
|||
|
does the difficulty of deriving it.
|
|||
|
|
|||
|
Servers that answer -ERR to the USER command are giving potential
|
|||
|
attackers clues about which names are valid.
|
|||
|
|
|||
|
Use of the PASS command sends passwords in the clear over the
|
|||
|
network.
|
|||
|
|
|||
|
Use of the RETR and TOP commands sends mail in the clear over the
|
|||
|
network.
|
|||
|
|
|||
|
Otherwise, security issues are not discussed in this memo.
|
|||
|
|
|||
|
14. Acknowledgements
|
|||
|
|
|||
|
The POP family has a long and checkered history. Although primarily
|
|||
|
a minor revision to RFC 1460, POP3 is based on the ideas presented in
|
|||
|
RFCs 918, 937, and 1081.
|
|||
|
|
|||
|
In addition, Alfred Grimstad, Keith McCloghrie, and Neil Ostroff
|
|||
|
provided significant comments on the APOP command.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 20]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
15. Authors' Addresses
|
|||
|
|
|||
|
John G. Myers
|
|||
|
Carnegie-Mellon University
|
|||
|
5000 Forbes Ave
|
|||
|
Pittsburgh, PA 15213
|
|||
|
|
|||
|
EMail: jgm+@cmu.edu
|
|||
|
|
|||
|
|
|||
|
Marshall T. Rose
|
|||
|
Dover Beach Consulting, Inc.
|
|||
|
420 Whisman Court
|
|||
|
Mountain View, CA 94043-2186
|
|||
|
|
|||
|
EMail: mrose@dbc.mtview.ca.us
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 21]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
Appendix A. Differences from RFC 1725
|
|||
|
|
|||
|
This memo is a revision to RFC 1725, a Draft Standard. It makes the
|
|||
|
following changes from that document:
|
|||
|
|
|||
|
- clarifies that command keywords are case insensitive.
|
|||
|
|
|||
|
- specifies that servers must send "+OK" and "-ERR" in
|
|||
|
upper case.
|
|||
|
|
|||
|
- specifies that the initial greeting is a positive response,
|
|||
|
instead of any string which should be a positive response.
|
|||
|
|
|||
|
- clarifies behavior for unimplemented commands.
|
|||
|
|
|||
|
- makes the USER and PASS commands optional.
|
|||
|
|
|||
|
- clarified the set of possible responses to the USER command.
|
|||
|
|
|||
|
- reverses the order of the examples in the USER and PASS
|
|||
|
commands, to reduce confusion.
|
|||
|
|
|||
|
- clarifies that the PASS command may only be given immediately
|
|||
|
after a successful USER command.
|
|||
|
|
|||
|
- clarified the persistence requirements of UIDs and added some
|
|||
|
implementation notes.
|
|||
|
|
|||
|
- specifies a UID length limitation of one to 70 octets.
|
|||
|
|
|||
|
- specifies a status indicator length limitation
|
|||
|
of 512 octets, including the CRLF.
|
|||
|
|
|||
|
- clarifies that LIST with no arguments on an empty mailbox
|
|||
|
returns success.
|
|||
|
|
|||
|
- adds a reference from the LIST command to the Message Format
|
|||
|
section
|
|||
|
|
|||
|
- clarifies the behavior of QUIT upon failure
|
|||
|
|
|||
|
- clarifies the security section to not imply the use of the
|
|||
|
USER command with the APOP command.
|
|||
|
|
|||
|
- adds references to RFCs 1730 and 1734
|
|||
|
|
|||
|
- clarifies the method by which a UA may enter mail into the
|
|||
|
transport system.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 22]
|
|||
|
|
|||
|
RFC 1939 POP3 May 1996
|
|||
|
|
|||
|
|
|||
|
- clarifies that the second argument to the TOP command is a
|
|||
|
number of lines.
|
|||
|
|
|||
|
- changes the suggestion in the Security Considerations section
|
|||
|
for a server to not accept both PASS and APOP for a given user
|
|||
|
from a "must" to a "should".
|
|||
|
|
|||
|
- adds a section on scaling and operational considerations
|
|||
|
|
|||
|
Appendix B. Command Index
|
|||
|
|
|||
|
APOP ....................................................... 15
|
|||
|
DELE ....................................................... 8
|
|||
|
LIST ....................................................... 6
|
|||
|
NOOP ....................................................... 9
|
|||
|
PASS ....................................................... 14
|
|||
|
QUIT ....................................................... 5
|
|||
|
QUIT ....................................................... 10
|
|||
|
RETR ....................................................... 8
|
|||
|
RSET ....................................................... 9
|
|||
|
STAT ....................................................... 6
|
|||
|
TOP ........................................................ 11
|
|||
|
UIDL ....................................................... 12
|
|||
|
USER ....................................................... 13
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
|
|||
|
Myers & Rose Standards Track [Page 23]
|
|||
|
|