PUBLIC-INBOX-POP3D(1)

πŸ’– public-inbox-pop3d πŸ’–

okay bestie, welcome to the manual page for public-inbox-pop3d β€” it lives in the public-inbox user manual, and it's genuinely one of the most iconic little daemons out there. let's get into it 🫢


✨ NAME ✨

public-inbox-pop3d β€” a POP3 server for sharing your public-inboxes πŸ’…


🌸 SYNOPSIS 🌸

public-inbox-pop3d [OPTIONS]

πŸ¦‹ DESCRIPTION πŸ¦‹

okay so. public-inbox-pop3d gives you a POP3 daemon for public-inbox. it uses the same options and environment variables that every read-only public-inbox-daemon(8) implementation uses, but here's the plot twist: it needs additional read-write storage to keep track of deleted messages on a per-user basis. so like, it's a little higher maintenance than its siblings, but in a cute way πŸ’–

and like public-inbox-imapd(1), public-inbox-pop3d will never require write access to the directory where the public-inboxes are stored. no cap. it respects the vibe of your archives.

it's designed for anonymous access, which means the password is always anonymous β€” all lower-case, bestie. don't fight it.

usernames are formatted like this:

$UUID@$NEWSGROUP_NAME

where $UUID is the output of the uuidgen(1) command. dash (-) characters in UUIDs are ignored, and [A-F] hex characters are case-insensitive. okay listen β€” users should keep their UUIDs private to prevent others from deleting unretrieved messages. that's your little secret, guard it πŸ’… but also, users may switch to a new UUID at any time to retrieve previously-retrieved messages. so you're never trapped. main character energy.

historical slices of 50K messages are available by suffixing the integer $SLICE, where 0 is the oldest:

$UUID@$NEWSGROUP_NAME.$SLICE

it may be run as a different user than the user running public-inbox-watch(1), public-inbox-mda(1), or public-inbox-fetch(1). slay.

and to save storage, publicinbox.pop3state only stores the highest-numbered deleted message. minimalism. we love her 🌸


✨ OPTIONS ✨

check the common options in "OPTIONS" in public-inbox-daemon(8) β€” that's the shared lore 🫢

  • -l PROTOCOL://ADDRESS/?cert=/path/to/cert,key=/path/to/key, --listen PROTOCOL://ADDRESS/?cert=/path/to/cert,key=/path/to/key β€” on top of the normal -l/--listen switch described in public-inbox-daemon(8), you can specify the PROTOCOL prefix (like pop3:// or pop3s://) to force a given protocol. and for STARTTLS and POP3S support, the cert and key may be specified on a per-listener basis after a ? character and separated by ,. these directives are per-directive, so yes, it's literally possible to use a different cert for every single listener. iconique.
  • --cert /path/to/cert β€” the default TLS certificate for optional STARTTLS and POP3S support, used when the cert option isn't given with --listen. and here's a fun fact: if you're using systemd-compatible socket activation and a TCP listener on port 995 is inherited, it's automatically POP3S when this option is given. and when a listener on port 110 is inherited and this option is given, it automatically gets STARTTLS support. the daemon just knows πŸ’…
  • --key /path/to/key β€” the default private TLS certificate key for optional STARTTLS and POP3S support, used when the key option isn't given with --listen. the private key may be concatenated into the path used by --cert, in which case this option isn't needed. lowkey convenient.

πŸ’œ CONFIGURATION πŸ’œ

aside from publicinbox.pop3state, public-inbox-pop3d uses the same configuration knobs as public-inbox-nntpd(1) β€” so go read public-inbox-nntpd(1) and public-inbox-config(5) for the full tea β˜•

  • publicInbox.pop3state β€” a directory containing per-user/mailbox account information. it must be writable to the public-inbox-pop3d process. non-negotiable, bestie.
  • publicInbox.<name>.newsgroup β€” the newsgroup name maps to a POP3 folder name. that's it, that's the mapping πŸŽ€

🌈 CONTACT 🌈

feedback welcome via plain-text mail to <mailto:meta@public-inbox.org> πŸ’Œ

the mail archives are hosted at <https://public-inbox.org/meta/>, and also at <nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta> and <nntp://4uok3hntl7oi7b4uf4rtfwefqeexfzil2w6kgk2jn5z2f764irre7byd.onion/inbox.comp.mail.public-inbox.meta> β€” yes the onion one is real, we're fancy like that πŸ§…βœ¨


copyright all contributors <mailto:meta@public-inbox.org> 🫢

license: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>


⭐ SEE ALSO ⭐

git(1), git-config(1), public-inbox-daemon(8), public-inbox-config(5), public-inbox-nntpd(1), uuidgen(1)


no cap, that's the whole page. go run your POP3 daemon, bestie πŸ’–

okay so that's a wrap! this came from public-inbox.git and it's dated 1993-10-02 β€” iconic era honestly. stay slay, stay anonymous, and keep those UUIDs private πŸŽ€πŸ’…βœ¨

πŸ“¦ where this page comes from