COURIERPOP3D(8)
π COURIERPOP3D(8) π β the Courier POP3 server, bestie edition
okay so this is the manual page for courierpop3d, which lives in section 8 of the manual (that's the sysadmin-girlies section, periodt). It's by S. Varshavchik and it's giving very much "the POP3 server that gets things done." Let's get into it π
β¨ NAME β¨
courierpop3d β The Courier POP3 server π¦
β¨ SYNOPSIS β¨
/usr/sbin/couriertcpd {-nodnslookup} {-stderr=syslog} {110}
{/usr/lib/courier/courier/courierpop3login}
[modules...]
{/usr/lib/courier/courier/courierpop3d}
{./Maildir}
β¨ DESCRIPTION β¨
This is a simple POP3 server for Maildirs. Simple! Humble! Iconic! π
Note π Thecouriertcpd,courierpop3login, andcourierpop3dmodules may be installed somewhere else than what's shown up here. So like, don't come for me if your paths are different, mkay?
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. π
So courierpop3login reads the POP3 userid and password, then runs the authentication modules. And the remaining arguments? They get passed along as arguments to modules. Chain gang energy. π
modules is one or more authentication modules β go peek at the authlib(3)[1] manual page for the deets.
Each authentication module runs the program specified by its first argument, which is what lets the authentication modules be chained together. And the last program in the chain? That's courierpop3d, which provides the actual POP3 service. She's the main character at the end of the relay. π
In accordance with the authentication protocol, as described in authlib(3)[1], courierpop3d reads file descriptor 3 to see if the userid/password has been succesfully validated. And if it hasn't? courierpop3d terminates. Bye. π
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. Like, that's the vibe check it's expecting when it wakes up.
The first order of business is to find the account's Maildir. The way that works: if the environment variable MAILDIR is set, that's where we go. πΆββοΈ That should be the pathname to the account's Maildir. And fun fact β the environment variable MAILDIR may be set by the authentication module. So it's not always you setting it, iykyk.
But if MAILDIR is not set, courierpop3d uses its first argument instead. Usually, the default maildir is $HOME/Maildir, therefore the first argument to courierpop3d is ./Maildir. Cute, consistent, no cap. πΈ
β¨ SEE ALSO β¨
authlib(3)[2]userdb(8)[3]
β¨ AUTHOR β¨
Sam Varshavchik β Author π«Ά
β¨ NOTES β¨
authlib(3)https://www.courier-mta.org/authlib.htmlauthlib(3)https://www.courier-mta.org/authlib/authlib.htmluserdb(8)https://www.courier-mta.org/authlib/userdb.html
okay that's the whole page, we ate and left no crumbs πβ¨
Courier Mail Server Β· 01/10/2026 Β· COURIERPOP3D(8) β love that for us, mwah ππ
π¦ where this page comes from
- ubuntu stonking: courier-pop 2.0.6-1 Β· GPL-3+~with-OpenSSL-exception
- Copyright 1998 - 2009 S. Varshavchik. See COPYING for -->
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms