POP3PROXYD(8)

πŸ’… POP3PROXYD(8) πŸ’…

okay bestie, welcome to pop3proxyd β€” it lives in the Cyrus IMAP manual, section 8 (that's the sysadmin one, iykyk). lowkey this one is a lil goofy: it's a hard linked copy of pop3d(8) that they kept around for backwards compatibility, from back in the day when a murder frontend rolled its own pop3d binaries. so yeah, it's giving "same girl, different name tag." πŸŽ€


✨ SYNOPSIS ✨

pop3d [ -C config-file ] [ -U uses ] [ -T timeout ] [ -D ]
    [ -H ] [ -s ] [ -p ssf ]

πŸ¦‹ DESCRIPTION πŸ¦‹

so pop3d is a POP3 server. it takes commands on its standard input and claps back on its standard output. and here's the thing β€” it MUST be started by master(8) with those descriptors already attached to a remote client connection. no cap. don't just run it in your terminal like a lil gremlin. 😭

it reads its config options out of the imapd.conf(5) file, unless you say otherwise with -C. πŸ’–

and ooh, here's a cute detail: if a directory called log/user exists under the directory named in the configdirectory configuration option, then pop3d will create protocol telemetry logs for sessions that authenticate as user. ✨

those telemetry logs get stored in that log/user directory, with a filename of the pop3d process-id. so organized. so main character. πŸ‘‘


🌸 OPTIONS 🌸

  • -C config-file β€” use the config file you specify (config-file) instead of the default imapd.conf(5). your rules, your file. 🫢
  • -U uses β€” the max number of times this process should be used for new connections before it shuts down. default is 250. it's got stamina but it's not infinite, bestie. πŸ’€
  • -T timeout β€” how many seconds the process waits for a new connection before shutting down. important: a value of 0 (zero) disables the timeout. default is 60.
  • -D β€” run the external debugger specified in debug_command. detective mode. πŸ”
  • -H β€” tell httpd to expect a HAProxy protocol header from the sender. πŸ‘€
  • -s β€” serve POP3 over SSL (that's pop3s). all data to and from pop3d gets encrypted using the Secure Sockets Layer. locked down, slay. πŸ”’
  • -p ssf β€” tell pop3d that an external layer exists. an SSF (security strength factor) of 1 means an integrity protection layer exists. any higher SSF implies some form of privacy protection. ✨

πŸŽ€ EXAMPLES πŸŽ€

pop3d is commonly dropped into the SERVICES section of cyrus.conf(5), like so:

SERVICES {
    imap        cmd="imapd -U 30" listen="imap" prefork=0
    imaps       cmd="imapd -s -U 30" listen="imaps" prefork=0 maxchild=100
    pop3        cmd="pop3d -U 30" listen="pop3" prefork=0
    pop3s       cmd="pop3d -s -U 30" listen="pop3s" prefork=0 maxchild=100
    lmtpunix    cmd="lmtpd" listen="/var/run/cyrus/socket/lmtp" prefork=0 maxchild=20
    sieve       cmd="timsieved" listen="sieve" prefork=0
    notify      cmd="notifyd" listen="/var/run/cyrus/socket/notify" proto="udp" prefork=1
    httpd       cmd="httpd" listen=8080 prefork=1 maxchild=20
}

the way this whole block just *works*… obsessed. 😌


πŸ“ FILES πŸ“

  • /etc/imapd.conf

🧚 SEE ALSO 🧚


πŸ’œ AUTHOR πŸ’œ

The Cyrus Team. absolute icons, no notes. πŸ‘‘


1993–2026, The Cyrus Team


fr fr, if you take nothing else from this page: pop3d needs master(8) and those descriptors. that's the vibe check. don't skip it. πŸ’…

mwah β€” this was Cyrus IMAP 3.12.4, dated Sep 09, 2026. go forth and serve some POP3, bestie. πŸ¦‹βœ¨

πŸ“¦ where this page comes from