spop3d.conf(5)

spop3d.conf πŸ’– the config file for The Solid POP3 Server

ok so bestie, this is spop3d.conf(5) β€” the System Administrator's Manual page for the config data of The Solid POP3 Server. it's giving "one file to rule your pop3 daemon" and honestly? iconic. let's get into it πŸŽ€


✨ NAME ✨

spop3d.conf β€” configuration data for The Solid POP3 Server. yes that's the whole vibe, no cap.


🌸 DESCRIPTION 🌸

A config file is made of zero or more blocks. there are exactly two kinds, and they're both main characters:

  • Global β€” starts with <Global> and ends with </Global>.
  • VirtualHost β€” starts with one of these lines:
<VirtualHost xx.xx.xx.xx>

<VirtualHost host.name.com>

<VirtualHost xx.xx.xx.xx host.name.com>

where xx.xx.xx.xx is an IPv4 (or IPv6) address and host.name.com is a virtual domain name (read the VIRTUALS file, bestie). the VirtualHost block ends with </VirtualHost>.

each block holds zero or more options. every option gets its own line and has 2 parts: the option name and the option argument, separated by a white space character (one or more β€” she's flexible πŸ’…).

there are 4 types of options:

  • boolean β€” its argument can be "yes" (or "true") and "no" (or "false").
  • string β€” its argument is a string. the string should be quoted (read the section BUGS, babe).
  • period β€” its argument is a number which can be followed by one of these suffixes: s (for seconds), m (for minutes), h (for hours), d (for days), w (for weeks). this argument specifies some period of time or some number.
  • expire β€” exactly the same as period, BUT its argument can also be never. she's got range.

Every text between /* and */ is treated as a comment and is ignored β€” unless it's inside a quoted string. don't get caught out 🫢

Options from all Global blocks and some VirtualHost blocks are used β€” "some" meaning when their IPv4 (or IPv6) address is equal to the socket address, or their block virtual domain name is equal to the virtual domain name specified by the user. Options from left VirtualHost blocks are ignored, periodt. also: the config file is parsed two times if the user specifies a virtual domain name (read the VIRTUALS file).

Following options are recognized:

  • AllowRootLogin boolean β€” allow root login. it's disabled by default and shouldn't be changed. 🚨
Debian Note: This option is not available in the Debian package.
  • UserOverride boolean β€” allow users to specify their maildrops (path and type) and APOP secrets. it's enabled by default.
  • UserMailDropDelimiter string β€” specify the character used to separate different maildrops for a user. if set, the user can access different maildrops, as defined in their ~/.spop3d file, by logging in as "user_nameUserMailDropDelimitermaildrop_name" (e.g. user+private, if the UserMailDropDelimiter is set to +). default is empty (which disables support for multiple mailboxes per user). πŸ’Œ
  • AllowAPOP boolean β€” users can authenticate themselves with the APOP scheme. it's enabled by default.
  • MailDropName string β€” specify the path to the maildrop. the format is the same as for the -n option in solid-pop3d(8). default value is /var/mail/%s.
  • MailDropType string β€” specify the type of maildrop. the allowed values are mailbox and maildir. default value is mailbox (or maildir if support for mailbox isn't compiled into the server).
  • APOPServerName string β€” specify the server name which is used for APOP authentication. default value is a name obtained from the gethostname() call.
  • AutoLogoutTime period β€” specify the autologout time. the server quits when the client is idle for the specified period. default value is 2 minutes. 😴
  • ChangeGID boolean β€” if enabled, the server changes its GID to the GID of the logged-in user. it's enabled by default.
  • WrongCommandsLimit period β€” specify the limit of wrong commands. the server quits when this limit is exceeded. the limit is ignored when 0 is specified. default value is 5. πŸ’€
  • ReadExpire expire β€” expire read (in this instance of the daemon) messages that are older than expire. default value is never.
  • UnreadExpire expire β€” expire unread (in this instance of the daemon) messages that are older than expire. default value is never.
  • DoMapping boolean β€” if enabled, mapping of user names (read the VIRTUALS file) is allowed. this option is disabled by default.
  • UserMapFile string β€” specify the path to the user names mapping file (read the VIRTUALS file). there is no default value.
  • UserMapPrefix string β€” specify a set of characters which should be prefixed to the username before it is looked up in the user mapping file. for example, given a username of "bar", and a UserMapPrefix of "foo-", there should be an entry in the user mapping file for "foo-bar". this option has no effect when DoMapping is disabled, and is a blank string by default.
  • AllowNonIP boolean β€” if enabled, the user is allowed to specify a virtual domain name when logging in. read the VIRTUALS file for details. this option is enabled by default.
  • UserBullFile string β€” specify the path to the user bulletin file (read the section BULLETINS in README). the format is the same as for the -n option in solid-pop3d(8). default value is .spop3d-bull.
  • BulletinDirectory string β€” specify the path to the bulletin directory. default value is /var/lib/solid-pop3d/bulletins.
  • LogPriority string β€” set the logging facility and priority. default value is local0.notice. known facilities: daemon, local0, local1, ..., local7, mail, user. known priorities: emerg, alert, crit, err, warning, notice, info, debug. facility or facility.priority combination are recognized.
  • AddBulletins boolean β€” the server checks for new bulletins in BulletinDirectory if enabled. this option is enabled by default.
  • RequiredMapping boolean β€” if DoMapping and RequiredMapping are enabled, the user _MUST_ have an entry in the user mapping file. if DoMapping is enabled and RequiredMapping is disabled, the user needn't have an entry in the user mapping file (no mapping is performed then). this option has no effect when DoMapping is disabled. the option is enabled by default.
  • AuthMappedUser boolean β€” controls whether authentication is performed on the username given by the user, or the username looked up in the user mapping file. the option is enabled by default, meaning that the user from the mapping file is used. the option has no effect when DoMapping is disabled.
  • LogStatistics boolean β€” if enabled, qpopper-like statistics are logged. at the end of each session, the username, number of deleted messages, size (in bytes) of deleted messages, number of messages left on server, and size (in bytes) of messages left on server are logged. the option is enabled by default. πŸ“Š
  • CreateMailDrop boolean β€” if enabled, the maildrop (mailbox or maildir) will be created when it doesn't exist. the option is disabled by default.
  • AllowUser boolean β€” allow USER/PASS authentication. this option is enabled by default. it's the standard method of user authentication and you probably don't need to disable it. you must have at least one authentication method enabled (AllowUser or AllowAPOP). ⚠️

πŸ¦‹ EXAMPLE πŸ¦‹

ok here's a whole lil config, look at her go:

<Global>
     LogPriority    daemon.info
     MailDropName   Maildir
     MailDropType   maildir
     UserBullFile   .spop3d-blurp /* It's just an example */
     ReadExpire     0
     UnreadExpire   2w
</Global>
<VirtualHost 192.168.1.1>
     LogPriority    local0
     UserMapFile    /etc/pop3/192.168.1.1.mapping
     DoMapping      true
     UnreadExpire   never
     APOPServerName jakis.tam.host.w.pl
     MailDropName   "/var/mail/%s" /* It is a comment */
     MailDropType   mailbox
     AutoLogoutTime 5s
     UserOverride   yes
     AllowAPOP      yes
     ChangeGID      true
</VirtualHost>

🚨 WARNINGS 🚨

spop3d.conf should be readable by the "spop3d" user!!! (three exclamation marks, that's how serious we're being). the server exits when a syntax error occurs in a configuration file. and if a configuration file doesn't exist (stat() failed), the server logs this fact only when in debugging mode. so like, check ur file perms bestie, fr fr 😭


πŸ“ FILES πŸ“

  • /etc/spop3d.conf β€” the global configuration file. the one. the blueprint. πŸ‘‘

πŸ‘€ SEE ALSO πŸ‘€

solid-pop3d(8), pop_auth(1), dot-spop3d(5)


πŸ’œ AUTHOR πŸ’œ

Jerzy Balamut <jurekb@dione.ids.pl>


and that's the whole page bestie, we ate and left absolutely no crumbs πŸ“βœ¨ this one came from the Unix manual, OCTOBER 1999, filed under spop3d.conf(5) β€” go forth and configure responsibly, iykyk πŸ’…πŸ¦‹πŸ’–

πŸ“¦ where this page comes from