MPOPD(1)

πŸ’Œ MPOPD(1) β€” the manual page, but make it cute

okay bestie, so this is the manual page for mpopd from the General Commands Manual section 1, and I'm gonna walk you through it like we're texting at 2am. 🫢


✨ NAME ✨

mpopd β€” a minimal POP3 server. that's it, that's the whole vibe. lowkey iconic for how little it does. πŸ’…


🌸 SYNOPSIS 🌸

mpopd [option...]

yep. just options. no positional args, no drama. she shows up, she reads her flags, she slays.


πŸ¦‹ DESCRIPTION πŸ¦‹

so mpopd is a minimal POP3 server that delivers mails from a local mailbox in maildir format. fr fr, that's the whole job.

the way it works: it can be used by end users as a way to handle incoming mail via mpop with mail clients that insist on using POP3. some clients are just Like That πŸ™„ and won't read a local file, so you gotta give them a whole POP3 server. see the EXAMPLES section below for the tea.

by default, mpopd listens on 127.0.0.1 port 1100, but she can also run without her own network sockets in inetd mode, where she handles a single POP3 session on standard input / output. no sockets, just vibes.

🚨 to prevent abuse, mpopd will allow only a limited number of concurrent POP3 sessions, and if an authentication failure occurs, future authentication requests in any POP3 session will (for a limited duration) only be answered after a small delay. it's giving "go away and think about what you did" energy. πŸ’€

πŸ‘‘ OPTIONS πŸ‘‘

  • --version β€” prints version information. she's telling you who she is. ✨
  • --help β€” prints help. when you're lost and need a bestie. 🫢
  • --inetd β€” start a single POP3 session on stdin/stdout. no network socket, just one convo. 🌈
  • *--interface=ip* β€” listen on the given IPv6 or IPv4 address instead of 127.0.0.1. pick your address, main character. πŸ’–
  • *--port=number* β€” listen on the given port number instead of 25. (yes, 25. that's what it says. ikr. πŸ‘€)
  • --log=none|syslog|filename β€” set logging: none (default**), syslog, or logging to the given file. choose your diary. πŸŽ€
  • *--auth=user*[,passwordeval] β€” require authentication with this user name. the password will be retrieved from the given passwordeval command (this works just like passwordeval in mpop) or, if none is given, from the key ring or, if that fails, from a prompt. so she'll go looking, then just ask you directly. πŸ™ˆ
  • *--maildir=dir* β€” use this maildir as the mailbox. this is where the mail lives. 🏠

πŸ“ EXAMPLES πŸ“

πŸ’œ Using mpopd to handle incoming mail for a POP3-based mail client

some mail clients cannot get incoming mail from local files and instead insist on using a POP3 server. so rude of them. 😭 you can configure mpopd to be that POP3 server and serve your incoming mail from a local maildir folder.

(similarly, some mail clients cannot send outgoing mail via a program such as msmtp and instead insist on using an SMTP server. you can configure msmtpd to be that SMTP server and hand the mail over to msmtp. see the relevant section in the msmtp manual. twin behavior ✨)

for this purpose, mpopd should listen on an unprivileged port, e.g. 1100 (the default). a mailbox is defined using first the --auth option to set a user name and password and then using the --maildir option to specify the maildir folder that holds the incoming mail. multiple such option pairs can be used to define multiple mailboxes, e.g. from different remote mail accounts. more mailboxes, more fun. πŸŽ€

programs such as mpop can deliver new mail into the maildir folders at any time, but as long as mpopd is running no other programs may alter or remove mails from these folders. bestie. do not touch. that's her house. 🏑

let's use the user name mpopd-user. you have two options to manage the password:

  • store the password in your key ring, e.g. with secret-tool store --label=mpopd host localhost service pop3 user mpopd-user. in this case, use the mpopd option --auth=mpopd-user. πŸ”‘
  • store the password in an encrypted file and use the passwordeval mechanism. example for gpg: mpopd ... --auth=mpopd-user,'gpg -q -d ~/.mpopd-password.gpg' πŸ”

the complete command then is (using the keyring):

mpopd --auth=mpopd-user --maildir=/path/to/your/maildir/folder

the mail client software must then be configured to use localhost at port 1100 for incoming mail via POP3, and to use authentication with user mpopd-user and the password you chose. the mail client will probably complain that the POP3 server does not support TLS, but in this special case that is ok since all communication between your mail client and mpopd will stay on the local machine. ngl it's fine. it never leaves the house. 🫢


🌟 SEE ALSO 🌟

mpop(1) β€” her sister. go read that one too. πŸ‘‘


and that's the whole page, bestie!! this was MPOPD(1) from the General Commands Manual, dated 2021-09 β€” yes she's a 2021 girlie and she still eats. πŸ’…βœ¨ mwah, go configure your maildir. πŸŽ€πŸ’–πŸ¦‹