PICKUP(8postfix)
π 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 Postfixmain.cfandmaster.cfconfiguration 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) β themaster.cfservice 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 β¨
cleanup(8), message canonicalizationsendmail(1), Sendmail-compatible interfacepostdrop(1), mail posting agentpostconf(5), configuration parametersmaster(5), generic daemon optionsmaster(8), process managerpostlogd(8), Postfix loggingsyslogd(8), system logging
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
- debian bookworm: postfix 3.7.11-0+deb12u1
- ubuntu jammy: postfix 3.6.4-1ubuntu1
- ubuntu jammy: postfix 3.6.4-1ubuntu1.4
- ubuntu noble: postfix 3.8.6-1build2
- ubuntu noble: postfix 3.8.6-1ubuntu0.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms