BOUNCE(8postfix)

πŸ“¦
version 3.8.6 Β· 2 versions
, in debian bookworm, ubuntu noble

πŸ’Œ BOUNCE β€” Postfix delivery status reports πŸ’Œ

okay bestie, buckle up, we're talking about bounce, and it lives in the 8postfix section of the manual, so you already know it's a daemon situation. this one is literally the post office's ✨feelings journal✨ β€” it keeps receipts on every message and then tells you the tea. let's go 🫢


✨ NAME ✨

bounce β€” Postfix delivery status reports πŸ“¬


πŸŽ€ SYNOPSIS πŸŽ€

bounce [generic Postfix daemon options]

πŸ¦‹ DESCRIPTION πŸ¦‹

so the bounce(8) daemon is out here maintaining per-message log files stuffed with delivery status info. every single log file is named after the queue file it corresponds to, and it lives in a queue subdirectory named after the service name in the master.cf file β€” and that's either bounce, defer or trace. no cap, that's the naming scheme. and btw this program expects to be run from the master(8) process manager, so don't just go launching it yourself like it's a little indie app, bestie.

the bounce(8) daemon handles two types of service requests, and yes, both of them ate:

  • Append a recipient (non-)delivery status record to a per-message log file. πŸ“
  • Enqueue a delivery status notification message, with a copy of a per-message log file and of the corresponding message. When the delivery status notification message is enqueued successfully, the per-message log file is deleted. πŸ—‘οΈ

the software does a best notification effort. a non-delivery notification is sent even when the log file or the original message cannot be read. like, it's trying its best okay 😭

optionally, a bounce (defer, trace) client can request that the per-message log file be deleted when the requested operation fails. this is used by clients that cannot retry transactions by themselves, and that depend on retry logic in their own client. main character clients only πŸ’…


🌈 STANDARDS 🌈

the receipts, in list form:

  • RFC 822 (ARPA Internet Text Messages)
  • RFC 2045 (Format of Internet Message Bodies)
  • RFC 2822 (Internet Message Format)
  • RFC 3462 (Delivery Status Notifications)
  • RFC 3464 (Delivery Status Notifications)
  • RFC 3834 (Auto-Submitted: message header)
  • RFC 5322 (Internet Message Format)
  • RFC 6531 (Internationalized SMTP)
  • RFC 6532 (Internationalized Message Format)
  • RFC 6533 (Internationalized Delivery Status Notifications)

πŸ’€ DIAGNOSTICS πŸ’€

Problems and transactions are logged to syslogd(8) or postlogd(8). so if something goes sideways, the logs know. the logs always know πŸ™ˆ


πŸ‘‘ CONFIGURATION PARAMETERS πŸ‘‘

Changes to main.cf are picked up automatically, as bounce(8) processes run for only a limited amount of time. Use the command postfix reload to speed up a change. (she's fast, but you can make her faster ✨)

The text below provides only a parameter summary. See postconf(5) for more details including examples.

  • 2bounce_notice_recipient (default: postmaster) β€” The recipient of undeliverable mail that cannot be returned to the sender. the "even we couldn't deliver this" pile πŸ’€
  • backwards_bounce_logfile_compatibility (default: yes) β€” Produce additional bounce(8) logfile records that can be read by Postfix versions before 2.0. it's giving nostalgia πŸ•°οΈ
  • bounce_notice_recipient (default: postmaster) β€” The recipient of postmaster notifications with the message headers of mail that Postfix did not deliver and of SMTP conversation transcripts of mail that Postfix did not receive.
  • bounce_size_limit (default: 50000) β€” The maximal amount of original message text that is sent in a non-delivery notification. we are NOT quoting the whole essay back, bestie βœ‚οΈ
  • bounce_template_file (default: empty) β€” Pathname of a configuration file with bounce message templates.
  • config_directory (default: see 'postconf -d' output) β€” The default location of the Postfix main.cf and master.cf configuration files.
  • daemon_timeout (default: 18000s) β€” How much time a Postfix daemon process may take to handle a request before it is terminated by a built-in watchdog timer. the watchdog is not playing πŸ•
  • delay_notice_recipient (default: postmaster) β€” The recipient of postmaster notifications with the message headers of mail that cannot be delivered within $delay_warning_time time units.
  • deliver_lock_attempts (default: 20) β€” The maximal number of attempts to acquire an exclusive lock on a mailbox file or bounce(8) logfile.
  • deliver_lock_delay (default: 1s) β€” The time between attempts to acquire an exclusive lock on a mailbox file or bounce(8) logfile.
  • ipc_timeout (default: 3600s) β€” The time limit for sending or receiving information over an internal communication channel.
  • internal_mail_filter_classes (default: empty) β€” What categories of Postfix-generated mail are subject to before-queue content inspection by non_smtpd_milters, header_checks and body_checks.
  • mail_name (default: Postfix) β€” The mail system name that is displayed in Received: headers, in the SMTP greeting banner, and in bounced mail.
  • max_idle (default: 100s) β€” The maximum amount of time that an idle Postfix daemon process waits for an incoming connection before terminating voluntarily. she's leaving the party early, respectfully πŸšͺ
  • max_use (default: 100) β€” The maximal number of incoming connections that a Postfix daemon process will service before terminating voluntarily.
  • notify_classes (default: resource, software) β€” The list of error classes that are reported to the postmaster.
  • process_id (default: read-only) β€” The process ID of a Postfix command or daemon process.
  • process_name (default: read-only) β€” The process name of a Postfix command or daemon process.
  • queue_directory (default: see 'postconf -d' output) β€” The location of the Postfix top-level queue directory.
  • syslog_facility (default: mail) β€” The syslog facility of Postfix logging.
  • syslog_name (default: see 'postconf -d' output) β€” A prefix that is prepended to the process name in syslog records, so that, for example, "smtpd" becomes "prefix/smtpd".

🌸 Available in Postfix 3.0 and later:

  • smtputf8_autodetect_classes (default: sendmail, verify) β€” Detect that a message requires SMTPUTF8 support for the specified mail origin classes.

πŸ“ Available in Postfix 3.3 and later:

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

🧚 Available in Postfix 3.6 and later:

  • enable_threaded_bounces (default: no) β€” Enable non-delivery, success, and delay notifications that link to the original message by including a References: and In-Reply-To: header with the original Message-ID value.

πŸ’œ Available in Postfix 3.7 and later:

  • header_from_format (default: standard) β€” The format of the Postfix-generated From: header.

πŸŽ€ FILES πŸŽ€

the places these little receipts hang out:

  • /var/spool/postfix/bounce/* β€” non-delivery records
  • /var/spool/postfix/defer/* β€” non-delivery records
  • /var/spool/postfix/trace/* β€” delivery status records

πŸ”₯ SEE ALSO πŸ”₯

iykyk, go read these next:


πŸ’– LICENSE πŸ’–

The Secure Mailer license must be distributed with this software. periodt. don't be weird about it 🫢


πŸ‘‘ 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

okay that's the whole thing, bestie, we literally covered every flag and every line 🌈✨ and yeah, the vibe stamp at the bottom of the page is BOUNCE(8postfix) β€” that's the version/date sign-off, mwah πŸ’…πŸ’–

πŸ“¦ where this page comes from