POP Transactions Post Office Protocol POP

Popper is an implementation of the POP server that runs on a variety of UNIX systems to manage e−mail for Macintosh and PC clients. The program was originally developed at the University of California at Berkeley. The format of the command to launch the program is: usretcpopper [ −d ] [ −t tracefile ] The −d option sets the socket to debugging and turns debugging on. All debugging information is saved using syslog. The −t tracefile option turns debugging on and saves the trace information in tracefile see Debugging Mode. The POP program is available on the network: via anonymous ftp from ftp.cc.berkeley.edu; two files in the pub directory a compressed tar file popper.tar.Z for PC and a Macintosh StuffIt archive in BinHex format called MacPOP.sit.hqx.

20.5.2.1.2 POP Transactions

popper is the program that is launched by inetd when it gets a service request on port 110 the official POP port numbers are 110 for POP3 and 109 for POP2; consequently the term POP server is more appropriate than POP daemon. The popper server initializes and verifies that the peer client IP address is valid, and logs a corresponding warning message otherwise. The server enters the authorization state, during which the client must correctly identify itself by providing a valid UNIX UID and password on the servers host machine. No other exchanges are allowed during this state other than a request to quit. If authentication fails, a warning message is logged and the session ends. Once the user is identified, popper changes its own user and group IDs to match that of the user and enters the transaction state; it also makes a temporary copy of the users maildrop ordinarily in usr spoolmail, which is used for all subsequent transactions. These include the bulk of POP commands to retrieve mail, delete mail, undelete mail, and so forth. A Berkeley software extension also allows the user to submit an e−mail message parcel to be mailed using the sendmail program this extension is supported in the HyperMail client distributed with the server. When the client quits, popper enters the final update state during which the network connection is terminated and the users maildrop is updated with the possibly modified temporary maildrop. Logging — popper uses syslog to keep a record of its activities; by default, it uses logging priority notice for all messages except debugging, which is logged at priority debug. The default log file is usrspoolmqueuePOPlog, or usrspoolmqueuesyslog this can be changed, if desired. Debugging — popper will log debugging information when the −d parameter is specified after its invocation in the inetd.conf file. Care should be exercised in using this option since it generates considerable output in the syslog file. Alternatively, the −t tracefile option will place debugging information into file tracefile using fprintf instead of syslog. Telnet to port 110 or 109 if you set it up that way to check if the POP server popper is running on an UNIX system; for example, on a BSD UNIX host: telnet bsdhost 110 Trying… Connected to bsdhost.domain.edu. Escape character is ]. +OK UCB Pop server version 1.6 at bsdhost starting. 496 Or, on a Solaris platform: telnet sunhost 110 Trying… Connected to sunhost. Escape character is ]. +OK sunhost Solstice tm Internet Mail Server tm POP3 2.0 at Sun, 3 Jan 1999 19:19:41 −0500 EST quit +OK BYE Connection closed by foreign host. Limitations — popper copies the users entire maildrop to the temporary directory tmp and then operates on that copy. If the maildrop is particularly large, or if inadequate space is available in tmp, then the daemon will refuse to continue and will terminate the connection. This is important to keep in mind if huge e−mail messages are expected.

20.5.2.2 Internet Message Access Protocol IMAP