MPOP3 - a modular POP3 server ============================= This program is a modular POP3 implementation, meaning that it supports different authentication/storage modules loadable at runtime. At the moment, I only have four, and the default config file (mpop3.conf) loads two of them by default: auth_file and storage_mbox. AUTH MODULES auth_file --------- This is a simple authentication handler for reading usernames/passwords straight from a file. It's pretty much as minimal as it can get, replacing only the _auth_password() function, and it should be good for customising if you're going to be using APOP (plain-text passwords server-side). config options: none auth_getpw ---------- This is a simple auth handler for using UNIX system passwords, replacing only _auth_attempt_login and _auth_timestamp (NULL). APOP won't work with it. config options: none auth_postgresql --------------- Checks against a PostgreSQL database; also supports (optionally) mailboxnames as the second field in the SQL result. Config options: connection (a PostgreSQL connection string), query (an SQL statement with $1 in the place of the username to compare against) STORAGE MODULES storage_mbox ------------ This is a fully-functional 'mbox'-format storage handler, so if that's what you're after, relax. config options: storage_dir [sets the directory in which the spools are to be found] MODULES For further information about the modules system, please consult README.modules CONFIG FILE auth_module [filename] > [auth module config option] > [auth module config option] storage_module [filename] > [storage module config option] NOTES = Can handle NULLs (^v000) in mail spools = Can handle varied line endings in a mail spool (\n or \r\n... but fgets()/fgetln() unfortunately won't break on \r alone) = Can do APOP where appropriate = Supports extended POP3 response codes = Supports CAPA = Supports UIDL where appropriate BUILDING ./configure make all test make install If you see fit to start the program as root, it will drop privileges at the earliest practical opportunity. To make this work, you may need to use the --with-safe-user argument to configure. Run "./configure --help" for details. WHINING There are a few cool things this conspicuously *doesn't* do, see the file 'TODO' for details. COPYING All the files that make up this distribution are copyright 2005 Jim Driscoll. All rights reserved. Please see the file 'COPYING' for further details.