CUCIPOP(1)                 OpenBSD Reference Manual                 CUCIPOP(1)



NAME
       cucipop - Cubic Circle POP3 daemon

SYNOPSIS
       /usr/local/libexec/cucipop [-qaYdPUSDAT] [-E age] [-p port]
       /usr/local/libexec/cucipop -v

DESCRIPTION
       Cucipop is a mailbox server which is a fully compliant implementation
       of Internet RFC1939, Post Office Protocol Version 3.  The program
       allows remote access to UNIX mailboxes.

       Cucipop can be started standalone or from within inetd(8).

OPTIONS
       -v   Cucipop will print its version number, display its compile time
            configuration and exit.

       -q   Quiet mode, do not log statistics of regular sessions to
            syslogd(8).

       -a   Audit mode, also log statistics of regular sessions accessing
            empty mailboxes.

       -Y   Assume traditional Berkeley mailbox format, ignoring any Content-
            Length: fields.

       -d   Force interactive debug mode, accept commands from the tty.

       -P   Disable the optional USER and PASS command.

       -U   Disable the optional UIDL command.

       -S   Sabotage the UIDL command.  Cucipop will return different UIDL
            values for every session, hence causing mailclients that attempt
            to leave mail on the server to pick up the entire mailbox every
            time.  Turning this option on will violate RFC1939.

       -D   Autodelete messages that have been retrieved.  As soon as the QUIT
            command has been received or the connection drops, cucipop will
            behave as if those messages which have been collected using the
            RETR command were also specified to the DELE command.  Turning
            this option on will violate RFC1939.

       -E age
            Expire (in conjunction with the -S or -D options) messages that
            are older than age only.  Age is specified in seconds.  You can
            increase the unit of measure by appending an s, m, h, w, M or y.

       -A   Disable the optional APOP command.

       -T   Disable the optional TOP command.

       -p port
            Bind to a different port.

EXAMPLES
       Typically pop3 service is defined in services(5) as follows:

              pop3           110/tcp

       In order to start cucipop from within inetd(8), the following entry in
       inetd.conf(5) would be suitable:

              pop3   stream  tcp     nowait  root    /usr/local/libexec/cucipop cucipop -Y

       If your site gets many hits from popclients, it would be preferable to
       start cucipop standalone as in:

              /usr/local/libexec/cucipop -Y

       Your typical BOFH setting would be:

              /usr/local/libexec/cucipop -YaSE 6w

FILES
       /etc/master.passwd     the default authentication

       /etc/mail/vpop.db      virtual host authentication, see the
                              makevpopdb(8) man page on how this file is
                              created

       /var/spool/cucipop/state.db
                              AI state information and bulletin history

       /var/spool/cucipop/bulletins/nn
                              00 through 63 optional bulletin files in regular
                              mailbox format

       /var/mail/$LOGNAME     system mailbox

       /var/mail/virtual.dom.ain/$LOGNAME
                              virtual host system mailbox

       /var/mail/$LOGNAME.lock
                              lockfile for the system mailbox

       /var/mail/virtual.dom.ain/$LOGNAME.lock
                              lockfile for the virtual host system mailbox

       _????`hostname`        temporary `unique' zero-length files created by
                              cucipop

SEE ALSO
       RFC1939, RFC822, makevpopdb(8), inetd(8), inetd.conf(5), services(5),
       procmail(1), mail(1), binmail(1), uucp(1), sendmail(8), biff(1),
       comsat(8), lockfile(1), formail(1), syslog.conf(5)

BUGS
       When two or more cucipop sessions are accessing the same mailbox
       simultaneously, and at least one of them tries to update the mailbox,
       mild mailbox corruption might result and the other cucipop sessions
       will abort as soon as they detect unaccounted mailbox changes.  The
       (unlikely) worst case scenario would result in some messages not being
       deleted and/or gaining some trailing garbage.  Due to the ongoing
       consistency checks, existing messages or content is unlikely to be
       lost.

       If a local mailreader alters the mailbox content after cucipop has
       started and before cucipop has ended, cucipop will panic and abort the
       update as soon as it detects unaccounted mailbox changes.

       If the local maildelivery program is appending to the mailbox while
       cucipop is starting up, and the intervals between successive writes of
       the same mail are larger than 32 seconds, then cucipop will,
       mistakenly, show the last message in the mailbox (which is currently
       being written by the maildelivery agent) to be shorter than it actually
       is.  If the last message is marked for deletion in this session,
       cucipop will notice the increased length shortly before actually
       deleting the message and abort the update at that point.

       The unique-id listing returned by the UIDL command is based on a
       hashvalue calculated on-the-fly over the message content.  The actual
       values depend on the wordsize of the machine involved (defined as
       uidl_t in the source).  Also, since it is just a hashvalue (constructed
       out of a true hash over the entire message and the length of the
       message), there is a very slight chance that it will produce a false
       positive.

       A continued Content-Length: field is not handled correctly.

       If the TOP command is being used, the statistics of transferred octets
       will become mildly inaccurate (too high, depending on the number of
       untransferred newlines).

       Cucipop will never create a nonexisting mailbox.

       An empty first argument after a POP command is ignored (thanks to some
       silly popclients that violate the standard).

       When running in standalone daemon mode, an idle cucipop deamon will
       always leave at least one zombie process behind.  In order to improve
       performance, zombie processes are only collected when new clients
       connect.

       The Received field that is being tacked in front of a message misses
       the trailing "; date-time" addendum to make it fully RFC822 compliant.

MISCELLANEOUS
       To access the virtual host mailboxes, cucipop uses a fixed userid of
       vpop.

       Cucipop is NFS-resistant and eight-bit clean.

       The format of the regular syslog statistics is as follows: username
       originating-IP-address session-duration, retrieved messages (retrieved
       bytes), messages left in mailbox (octets left in mailbox).

       The state.db database is autocleansed at a rate of one entry per pop
       access (entries that have been unused for more than three months are
       purged).

NOTES
       Calling up cucipop with the -h or -? options will cause it to display a
       command-line help page.

SOURCE
       Cucipop has graciously been made available by Cubic Circle and is

              Copyright (c) 1996-1998, S.R. van den Berg, The Netherlands

AUTHOR
       Stephen R. van den Berg, Cubic Circle, The Netherlands
              <srb@cuci.nl>



BuGless                           1998/05/11                        CUCIPOP(1)
