diff options
Diffstat (limited to 'doc/rfc/rfc918.txt')
-rw-r--r-- | doc/rfc/rfc918.txt | 290 |
1 files changed, 290 insertions, 0 deletions
diff --git a/doc/rfc/rfc918.txt b/doc/rfc/rfc918.txt new file mode 100644 index 0000000..dbb6f03 --- /dev/null +++ b/doc/rfc/rfc918.txt @@ -0,0 +1,290 @@ + + +Network Working Group J. K. Reynolds +Request for Comments: 918 ISI + October 1984 + + + POST OFFICE PROTOCOL + + +Status of this Memo + + This RFC suggests a simple method for workstations to dynamically + access mail from a mailbox server. This RFC specifies a proposed + protocol for the ARPA-Internet community, and requests discussion and + suggestions for improvement. + +Introduction + + The intent of the Post Office Protocol (POP) is to allow a user's + workstation to access mail from a mailbox server. It is expected + that mail will be posted from the workstation to the mailbox server + via the Simple Mail Transfer Protocol (SMTP). For further + information see RFC-821 [1] and RFC-822 [2]. + + The status of this protocol is experimental, and this protocol is + dependent upon TCP. + +The Protocol + + The protocol is for the server to be listening for a connection. + When a connection is opened the server sends a greeting message and + waits for commands. When commands are received the server acts on + them and responds with replies. + + The client opens a connection, waits for the greeting, then sends the + USER and then the PASS commands to establish authorization to access + mailboxes. The client begins a mail reading transaction with either + an RDEL (to read and delete all messages from a mailbox) or a RETR + (to simply read all messages from a mailbox). The server opens and + locks the mailbox, and responds with the number of characters in the + mailbox. Then the client asks for the data to be sent by issuing the + RCEV command. The server responds by sending the mail data. When + all the data has been received the client sends the RCVD command. If + the transaction started with the RDEL command the server now deletes + the mail data from the mailbox. In any case, the server closes and + unlocks the mailbox. The client terminates the session with the QUIT + command. + + + + + + + + +Reynolds [Page 1] + + + +Post Office Protocol RFC 918 + + + The Normal Scenario + + Client Server + ------ ------ + Wait for Connection + Open Connection --> + <-- +OK + Wait for Command + USER Fred --> + <-- +OK + Wait for Command + PASS password --> + <-- +OK + Wait for Command + RDEL mailbox --> (open and lock mailbox) + <-- #xxx + Wait for Command + RCEV --> + <-- (send a copy of mail) + Wait for Command + RCVD --> (deletes mail from mailbox, unlock + and close mailbox) + <-- +OK + Wait for Command + QUIT --> + <-- +OK + Close connection --> <-- Close connection + Wait for Connection (go back to start) + +Definitions of Commands and Replies + + Summary of Commands and Replies + + Commands Replies + -------- ------- + USER name +OK + PASS password -Error + RETR mailbox #xxx + RDEL mailbox + RCEV + RCVD + QUIT + NOOP + RSET + + + + + + + +Reynolds [Page 2] + + + +Post Office Protocol RFC 918 + + + Commands + + USER name + + This command identifies the user to the server. It must be + followed by the PASS command. + + Possible responses: "+OK" or "-ERR" + + PASS password + + The PASS command carries the password authenticating this user. + Together the USER name and PASS password are used by the server + to control access to the mailboxes. + + Possible responses: "+OK" or "-ERR" + + RETR mailbox + + This command begins a mail reading transaction. The RETR + command is used to read all the messages in a mailbox without + deleting them. It must be followed by the RCEV command. + + Possible responses: "#xxx" or "-ERR" + + RDEL mailbox + + This command begins a mail reading transaction. The RDEL + command is used to read all the messages in a mailbox and + delete them. It must be followed by the RCEV command. + + Possible responses: "#xxx" or "-ERR" + + RCEV + + This command confirms that the client is ready to receive the + mail data. It must be followed by the RCVD command. + + Possible responses: "+OK" or (connection aborted) + + RCVD + + This command confirms that the client has received and accepted + the mail. The RCVD command ends the mail reading transaction. + In the case of the RDEL transaction, it is possible that the + mail is not necessarily deleted. This is indicated by an error + reply. + + Possible responses: "+OK" or "-ERR" + + +Reynolds [Page 3] + + + +Post Office Protocol RFC 918 + + + QUIT + + This command indicates the client is done with the session. + The server sends an OK response and then closes the connection. + + Possible responses: "+OK" then Close + + NOOP + + This is the no operation command. It causes no action on the + part of the server except an OK response. + + Possible response: "+OK" + + RSET + + This command causes the server to abort the current transaction + and return to waiting for a command (one of RDEL, RETR, QUIT, + NOOP, or RSET). When aborting a transaction the server must + take care to properly close and unlock the mailbox. + + Possible response: "+OK" + +Acknowledgment + + I would like to acknowledge the contributions of Jon Postel, Joel + Goldberger, Dale Chase, and Michael Butler in the development of the + Post Office Protocol. + +References + + [1] Postel, J., "Simple Mail Transfer Protocol", RFC-821, + USC/Information Sciences Institute, August 1982. + + [2] Crocker, D., "Standard for the Format of ARPA-Internet Text + Messages", RFC-822, University of Delaware, August 1982. + + + + + + + + + + + + + + + +Reynolds [Page 4] + + + +Post Office Protocol RFC 918 + + +Diagram + +---+ +---+ +---+ +---+ +---+ + Open | | +OK | | | | +OK | | | | +OK + ----->| S |--+-->| C |------>| S |------>| C |------>| S |---->+ + | | ^ | | USER | | | | PASS | | | + +---+ | +---+ +---+ +---+ +---+ | + | | -ERR | -ERR | + | V V | + +<-----------+<----------------+<----------------------+ | + | | + V +---+ +---+ | + +----->| | QUIT | | +OK | + | C |------>| S |----->Close | + +----->| | | | | + ^ +---+ +---+ | + | V + +<-------------------------------------------------------------+ + | ^ + | +---+ +---+ +---+ +---+ +---+ +---+ | + | | |RETR | | #xxx | |RECV | |DATA | |RCVD | |+OK | + +->| C |---->| S |----->| C |---->| S |---->| C |---->| S |--->+ + | | | or | | | | | | | | | | ^ + | +---+ RDEL+---+ +---+ +---+ +---+ +---+ | + | | -ERR | | | | -ERR | + | V | V | | | + +<-------------+ | Abort | | | + | V V V | + | +<---------------+-------------------+ +----->+ + | V + | +---+ +---+ + | | | RSET | | +OK + +----->| C |------>| S |----->+ + | | | | | | + | +---+ +---+ | + | V + +<----------------------------+ + | ^ + | +---+ +---+ | + | | | NOOP | | +OK | + +----->| C |------>| S |----->+ + | | | | + +---+ +---+ + + + + + + + + + +Reynolds [Page 5] + |