BOUNCE(8)

πŸ’– BOUNCE(8) πŸ’– β€” Postfix delivery status reports

okay so bestie, you found bounce(8), and honestly? she's the group chat's designated "did they get my message or not" girlie. She's part of the System Manager's Manual crowd, and she is SO good at her job. Let's get into it. πŸŽ€


✨ NAME ✨

bounce β€” Postfix delivery status reports πŸ¦‹


🌸 SYNOPSIS 🌸

bounce [generic Postfix daemon options]

πŸ’… DESCRIPTION πŸ’…

The bounce(8) daemon keeps per-message log files holding delivery status info. Each log file is named after the queue file it corresponds to, and it lives in a queue subdirectory named after the service name over in the master.cf file β€” and that service name is one of bounce, defer or trace. This program is expecting to be run from the master(8) process manager, no cap. πŸ‘‘

The bounce(8) daemon handles two kinds of service requests, and the range? Iconic:

  • 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. And here's the cute part: when the delivery status notification message gets enqueued successfully, the per-message log file gets deleted. bye bestie πŸ’€

The software does a best notification effort. That means a non-delivery notification is sent even when the log file or the original message cannot be read. She's trying her best and honestly, respect. 🫢

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. iykyk ✨


πŸ“š STANDARDS πŸ“š

  • 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)

look at her, knowing ALL the RFCs. main character energy fr fr. πŸ‘‘


πŸ” DIAGNOSTICS πŸ”

Problems and transactions get logged to syslogd(8) or postlogd(8). So if something's weird, check there, bestie. πŸ”₯


βš™οΈ CONFIGURATION PARAMETERS βš™οΈ

Changes to main.cf are picked up automatically, as bounce(8) processes run for only a limited amount of time. Wanna speed up a change? Run postfix reload. slay. πŸ’…

The text below provides only a parameter summary. See postconf(5) for more details including examples. Go read it, she's thorough. πŸ“–
  • 2bounce_notice_recipient (postmaster) β€” The recipient of undeliverable mail that cannot be returned to the sender. the sad little double-bounce πŸ₯²
  • backwards_bounce_logfile_compatibility (yes) β€” Produce additional bounce(8) logfile records that can be read by Postfix versions before 2.0. time travel but make it backwards compatible ✨
  • bounce_notice_recipient (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. receipts πŸ’Œ
  • bounce_size_limit (50000) β€” The maximal amount of original message text that is sent in a non-delivery notification. she's not gonna forward your whole essay, bestie. βœ‚οΈ
  • bounce_template_file (empty) β€” Pathname of a configuration file with bounce message templates. dress her up πŸŽ€
  • config_directory (see postconf -d output) β€” The default location of the Postfix main.cf and master.cf configuration files. πŸ—‚οΈ
  • daemon_timeout (18000s) β€” How much time a Postfix daemon process may take to handle a request before it is terminated by a built-in watchdog timer. clock's ticking ⏰
  • delay_notice_recipient (postmaster) β€” The recipient of postmaster notifications with the message headers of mail that cannot be delivered within $delay_warning_time time units. the "hey where u at" text 😭
  • deliver_lock_attempts (20) β€” The maximal number of attempts to acquire an exclusive lock on a mailbox file or bounce(8) logfile. she'll knock 20 times πŸ””
  • deliver_lock_delay (1s) β€” The time between attempts to acquire an exclusive lock on a mailbox file or bounce(8) logfile. and she waits 1s between knocks πŸ•
  • ipc_timeout (3600s) β€” The time limit for sending or receiving information over an internal communication channel. 🫧
  • internal_mail_filter_classes (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 (Postfix) β€” The mail system name that is displayed in Received: headers, in the SMTP greeting banner, and in bounced mail. name drop πŸ’…
  • max_idle (100s) β€” The maximum amount of time that an idle Postfix daemon process waits for an incoming connection before terminating voluntarily. she gets bored and leaves, valid. πŸ’€
  • max_use (100) β€” The maximal number of incoming connections that a Postfix daemon process will service before terminating voluntarily. 100 and she's OUT πŸ™ˆ
  • notify_classes (resource, software) β€” The list of error classes that are reported to the postmaster. πŸ“’
  • process_id (read-only) β€” The process ID of a Postfix command or daemon process. read-only, no touching πŸ”’
  • process_name (read-only) β€” The process name of a Postfix command or daemon process. also read-only 🚫
  • 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". glow-up via prefix ✨

Available in Postfix 3.0 and later:

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

Available in Postfix 3.3 and later:

  • service_name (read-only) β€” The master.cf service name of a Postfix daemon process. read-only bestie πŸ”

Available in Postfix 3.6 and later:

  • enable_threaded_bounces (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. ooooh threaded, like a group chat reply 🧡

Available in Postfix 3.7 and later:

  • header_from_format (standard) β€” The format of the Postfix-generated From: header. πŸ“¬

Available in Postfix 3.10 and later:

  • tls_required_enable (yes) β€” Enable support for the "TLS-Required: no" message header, defined in RFC 8689. πŸ”

Available in Postfix 3.11 and later:

  • requiretls_redact_dsn (yes) β€” When sending a delivery status notification for an original message received with the REQUIRETLS option, do not send the original message body (as if that message was received with "RET=HDRS") and do not enforce REQUIRETLS (as if that message was received without REQUIRETLS). 🫣

πŸ—ƒοΈ FILES πŸ—ƒοΈ

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

the fact that defer/* says "non-delivery records" and not something else? yeah that's what the page says, I don't make the rules, I just report them πŸ’–


πŸ‘€ SEE ALSO πŸ‘€

go read the whole friend group, bestie, they all ate πŸ“


πŸ“œ LICENSE πŸ“œ

The Secure Mailer license must be distributed with this software. periodt. βœ‹


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

Wietse Venema porcupine.org


and that's the whole page, bestie!! πŸŽ€πŸ’– This one comes from the BOUNCE(8) page in the System Manager's Manual β€” yes, the manual name is literally BOUNCE(8), that's the whole vibe β€” and the footer's just that same BOUNCE(8) tag hanging out at the bottom like a little signature, so consider it signed, sealed, delivered. no cap. βœ¨πŸ¦‹πŸ’…

πŸ“¦ where this page comes from