PICKUP(8postfix)

πŸ“¦ version 3.8.6, in debian bookworm, ubuntu jammy, ubuntu noble

πŸŽ€ PICKUP β€” the Postfix local mail pickup situation πŸ’Œ

ok bestie so this is pickup from the Postfix manual, section 8postfix (that's the daemon section, iykyk). she's a background girlie, she doesn't do small talk, she just works. let me tell you everything ✨


✨ NAME ✨

pickup β€” Postfix local mail pickup 🫢


✨ SYNOPSIS ✨

pickup [generic Postfix daemon options]

✨ DESCRIPTION ✨

okay so the pickup(8) daemon is literally just waiting. she sits there waiting for hints that new mail has been dropped into the maildrop directory, and then she feeds it straight into the cleanup(8) daemon. that's the whole job. main character energy but make it quiet.

and like β€” if a file is ill-formatted, it just gets deleted. no warning, no note, no nothing. the originator does not get notified. not a single text back. πŸ’€

also she expects to be run from the master(8) process manager, so don't just launch her on your own, she has a whole support system fr.


✨ STANDARDS ✨

None. ngl she does not interact with the outside world at all. she's got her own little bubble and she's thriving in it πŸ¦‹


✨ SECURITY ✨

so the pickup(8) daemon is moderately security sensitive β€” like, she's careful but she's not in her paranoid era.

  • she runs with fixed low privilege πŸ‘‘ (yes, low privilege is still a flex when you're this reliable)
  • she can run in a chrooted environment
  • BUT ⚠️ she reads files from potentially hostile users, so. yeah. that's the plot twist.

the good news is she's built different:

  • she opens no files for writing, periodt
  • she's careful about what files she opens for reading
  • and she does not actually touch any data that is sent to her public service endpoint πŸ™ˆ

✨ DIAGNOSTICS ✨

problems and transactions get logged to syslogd(8) or postlogd(8). she's not gonna yell at you in the terminal, she's gonna journal about it like a true 2014 tumblr girlie πŸ’…


✨ BUGS ✨

ok so here's the tea β˜• the pickup(8) daemon copies mail from file to the cleanup(8) daemon. like, physically copies it.

she could avoid that message copying overhead by sending a file descriptor instead of file data β€” slay, efficiency β€” but then the already complex cleanup(8) daemon would have to deal with unfiltered user data. and we are NOT doing that to her. she has enough going on 😭

so yeah. it's a bug. it's also a design choice. it's giving tradeoffs.


✨ CONFIGURATION PARAMETERS ✨

so because the pickup(8) daemon is a relatively long-running process, up to an hour may pass before a main.cf change takes effect. an HOUR. she's not refreshing, bestie.

want it to happen faster? use the command postfix reload command to speed up a change. πŸƒβ™€οΈ

the text below provides only a parameter summary β€” see postconf(5) for more details including examples. (we are NOT listing every example here, go read that one, she's thorough.)

🌸 CONTENT INSPECTION CONTROLS 🌸

  • content_filter (empty) β€” after the message is queued, send the entire message to the specified transport:destination. like, whole thing, no crumbs.
  • receive_override_options (empty) β€” enable or disable recipient validation, built-in content filtering, or address mapping. your little toggle board fr.

🌈 MISCELLANEOUS CONTROLS 🌈

  • config_directory (see 'postconf -d' output) β€” the default location of the Postfix main.cf and master.cf configuration files. her home base 🏠
  • ipc_timeout (3600s) β€” the time limit for sending or receiving information over an internal communication channel.
  • line_length_limit (2048) β€” upon input, long lines are chopped up into pieces of at most this length; upon delivery, long lines are reconstructed. chop, chop, glue back together βœ‚οΈ
  • max_idle (100s) β€” the maximum amount of time that an idle Postfix daemon process waits for an incoming connection before terminating voluntarily. she will leave if nothing's happening, and honestly? respect.
  • max_use (100) β€” the maximal number of incoming connections that a Postfix daemon process will service before terminating voluntarily.
  • process_id (read-only) β€” the process ID of a Postfix command or daemon process. read-only bestie, look but don't touch πŸ”’
  • process_name (read-only) β€” the process name of a Postfix command or daemon process.
  • queue_directory (see 'postconf -d' output) β€” the location of the Postfix top-level queue directory.
  • syslog_facility (mail) β€” the syslog facility of Postfix logging.
  • syslog_name (see 'postconf -d' output) β€” a prefix that is prepended to the process name in syslog records, so that, for example, "smtpd" becomes "prefix/smtpd". she's got a stage name now ✨

Available in Postfix 3.3 and later:

  • service_name (read-only) β€” the master.cf service name of a Postfix daemon process.

Available in Postfix 3.5 and later:

  • info_log_address_format (external) β€” the email address form that will be used in non-debug logging (info, warning, etc.).

✨ SEE ALSO ✨

go read them all. the whole friend group is iconic 🫢


✨ LICENSE ✨

The Secure Mailer license must be distributed with this software. (yes literally, must, no exceptions πŸ’–)


✨ AUTHOR(S) ✨

  • Wietse Venema
  • IBM T.J. Watson Research
  • P.O. Box 704
  • Yorktown Heights, NY 10598, USA
  • Wietse Venema
  • Google, Inc.
  • 111 8th Avenue
  • New York, NY 10011, USA

two whole addresses, two whole eras, one legend πŸ‘‘


and that's the whole page, babe πŸ’… thanks for reading all the way through, you ate that fr fr

this was pickup(8postfix) from the Postfix manual set β€” go off, and remember: she waits, she feeds mail to cleanup(8), she deletes the messy ones without telling anyone. πŸŒΈπŸ’œ

πŸ“¦ where this page comes from