courierpop3d — The Courier POP3 server
/usr/lib/courier/sbin/couriertcpd
{-nodnslookup} {-stderr=syslog} {110} {/usr/lib/courier/libexec/courier/courierpop3login} [modules
...] {/usr/lib/courier/libexec/courier/courierpop3d} {./Maildir}
This is a simple POP3 server for Maildirs.
The couriertcpd, courierpop3login, and courierpop3d modules may be installed elsewhere than indicated here.
courierpop3login is usually started by
couriertcpd. It
already expects that a POP3 client is connected to standard input and output,
presumably via a network socket.
courierpop3login reads the POP3
userid and password, then runs the
authentication modules
. The remaining
arguments are passed along as arguments to modules
.
modules
is one or more authentication modules (see the
authlib(7)
manual page).
Each authentication modules runs the program specified by its first argument, allowing the authentication modules to be chained. The last program in the chain is courierpop3d , which provides the actual POP3 service. In accordance with the authentication protocol, as described in authlib(7) courierpop3d reads file descriptor 3 to see if the userid/password has been succesfully validated. If not, courierpop3d terminates.
Otherwise, courierpop3d expects to be already running under the appropriate user and group id, with its current directory set to the account's home directory.
The first order of business is to find the account's Maildir. If the
environment variable MAILDIR
is set, that's where we go.
That should be the
pathname to the account's Maildir. The environment variable
MAILDIR
may be set by the
authentication module.
If MAILDIR
is not set,
courierpop3d uses its first argument.
Usually, the default maildir is
$HOME/Maildir
, therefore the first argument to
courierpop3d is
"./Maildir
".