pop3, imap4d – Internet mail servers


upas/pop3 [ -d debugfile ][ -a mailbox ][ -r peeraddr ][ -t tlscertfile ][ -p ]

upas/imap4d [-acpv] [-d smtpdomain] [-s servername]


These programs support remote access to mail across the Internet. All expect the network connection to be standard input, output, and error. They are normally started from scripts in /rc/bin/service (see listen(8)).

Pop3 provides access to a user’s mailboxes via the POP3 protocol. The options are:


create debugfile and write debugging output to it  


causes pop3 to assume that it already authenticated and to read mailbox immediately  


causes pop3 to create the file /mail/ratify/trusted/peeraddr#32 to allow subsequent SMTP sessions from that address. See ratfs(4) for details.  


get the local TLS certificate from the file tlscertfile.  


allow passwords in the clear for authenticating the connection  

Imap4d provides access to a user’s mailboxes via the IMAP4rev1 protocol. Only files rooted in /mail/box/username/ are accessible. The list of subscribed mailboxes is contained in /mail/box/username/imap.subscribed, and initially contains only INBOX, IMAP’s name for the user’s mailbox. A shadow file, mailbox.imp, is created for each mailbox examined.

Imap4d’s options are:


Assume the user is already authenticated. By default, the user must authenticate using CRAM-MD5 or securenet(8) challenge/response authentication.  


Allow plan 9 challenge response authentication.  


Allow login authentication. This option should only be enabled for servers using an encrypted connection, such as SSL, and when enabled, all non-encrypted connections should be disallowed. Imap4d does not enforce this policy.  


Turn on verbose output to the debug file.  


The server’s name. If none is provided, cs (see ndb(8)) is queried or /env/sysname is used.  


The local mail domain. Defaults to the server /env/site in the mail server’s domain.  

For both imap4d and pop3, the password used to authenticate the connection is the APOP secret held by keyfs(4) running on the authentication server.



debugging output  










aliasmail(8), faces(1), filter(1), mail(1), marshal(1), mlmgr(1), nedmail(1), qer(8), rewrite(6), send(8), upasfs(4)


Usually messages flagged for deletion with DELE are not actually deleted until the client sends a QUIT command to end the conversation. Pop3 implements a non-standard command SYNC that deletes messages flagged for deletion without ending the conversation.