nullmailer-dsn(1)

๐Ÿ’– nullmailer-dsn ๐Ÿ’–

okay bestie, welcome to the glow-up station for sad failed mail โœจ this one lives in the General Commands Manual section (section 1, iykyk), and it's basically the makeover montage for a bounced message ๐Ÿ’…


๐ŸŒธ NAME ๐ŸŒธ

nullmailer-dsn โ€” take a queued message and โœจreformatโœจ it into a delivery status notification (DSN), no cap


๐ŸŽ€ SYNOPSIS ๐ŸŽ€

nullmailer-dsn [ options ] status-code < message

๐Ÿฆ‹ DESCRIPTION ๐Ÿฆ‹

So here's the vibe: this program reads a nullmailer queue message from standard input, transforms it into a delivery status notification, and writes the result to standard output. The output is formatted to be fed straight into nullmailer-queue, like it's passing the baton in a relay ๐Ÿƒโ™€๏ธโœจ

Heads up bestie: all times in the options are expressed as seconds since midnight GMT January 1, 1970 โ€” that's the UNIX epoch, the moment the universe (or at least UNIX) woke up ๐ŸŒ…

๐Ÿ’… OPTIONS ๐Ÿ’…

  • --diagnostic-code=STRING โ€” sets the actual diagnostic code issued by the mail transport. It must be in the form of "type; text", where type would typically be the protocol name, such as SMTP. This adds a Diagnostic-Code header for each recipient ๐Ÿ“ฎ
  • --envelope-id=STRING โ€” the original envelope ID. Setting this adds an Original-Envelope-Id header to the delivery status section ๐ŸŽ
  • --last-attempt=TIME โ€” sets the time of the last attempted delivery. Defaults to the access time of the input message. This sets the date in the Last-Attempt-Date header for each recipient โฐ
  • --max-lines=COUNT โ€” sets the maximum number of lines of the original message to copy into the generated message. A value of zero copies only the original header. Negative values copy the whole message. Defaults to bouncelines below, or zero if that is empty โœ‚๏ธ
  • --orig-timestamp=TIME โ€” sets the time of the original message. Defaults to the change time of the input message. This sets the date in the Arrival-Date header in the delivery status section ๐Ÿ“…
  • --remote=STRING โ€” sets the name of the remote MTA server. This adds a Remote-MTA header for each recipient ๐ŸŒ
  • --retry-until=TIME โ€” sets the time of the (future) final delivery attempt. No default. This adds a Will-Retry-Until header for each recipient ๐Ÿ”

โญ RETURN VALUE โญ

Exits 0 if it was successful ๐Ÿ˜Œ otherwise it prints a diagnostic message to standard error and exits 1 ๐Ÿ˜ญ


๐ŸŒˆ CONTROL FILES ๐ŸŒˆ

  • adminaddr โ€” if doublebounceto is empty, double bounces are delivered to this address instead. If no address is configured, double bounces are not generated ๐Ÿšซ
  • bouncelines โ€” sets the maximum number of lines of the original message to copy. May be overridden by --max-lines as above ๐Ÿ“
  • bounceto โ€” the address to which all bounces should be sent. If it is empty, the original sender address is used ๐Ÿ 
  • defaultdomain โ€” the content of this file is appended to any host name that does not contain a period (except localhost), including defaulthost and idhost. Defaults to the value of the me control file, if it exists, otherwise the literal name defaultdomain ๐Ÿท๏ธ
  • defaulthost โ€” the content of this file is appended to any address that is missing a host name. Defaults to the value of the me control file, if it exists, otherwise the literal name defaulthost ๐Ÿท๏ธ
  • doublebounceto โ€” if the original sender was empty (the original message was a delivery status or disposition notification), the double bounce is sent to the address in this file ๐Ÿ“ฌ
  • idhost โ€” the content of this file is used when building the message-id string for the message. Defaults to the canonicalized value of defaulthost ๐Ÿ†”
  • me โ€” the fully-qualified host name of the computer running nullmailer. Defaults to the literal name me ๐Ÿ‘‘

๐Ÿ‘€ SEE ALSO ๐Ÿ‘€

nullmailer-queue(8), nullmailer-send(8) โ€” go read those too bestie, they're part of the same friend group ๐Ÿซถ


okay that's the whole page!! ๐Ÿ’– this was nullmailer-dsn(1) from the General Commands Manual, and honestly? iconic. slay, stay queued, and may all your bounces be properly formatted โœจ๐ŸŽ€๐Ÿฆ‹ periodt ๐Ÿ’