---
name: "oqmgr"
section: "8"
platform: "linux"
package: "postfix"
version: "3.11.7-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "macos"]
url: "https://new.carta.tech/oqmgr"
---

# oqmgr(8)

old Postfix queue manager

## NAME

oqmgr - old Postfix queue manager

## SYNOPSIS

```
oqmgr [generic Postfix daemon options]
```

## DESCRIPTION

The [**oqmgr**(8)](/oqmgr/8.md) daemon awaits the arrival of incoming mail and arranges for its delivery via Postfix delivery processes. The actual mail routing strategy is delegated to the [**trivial-rewrite**(8)](/trivial-rewrite/8.md) daemon. This program expects to be run from the [**master**(8)](/master/8.md) process manager.

Mail addressed to the local **double-bounce** address is logged and discarded.  This stops potential loops caused by undeliverable bounce notifications.

## MAIL QUEUES

```

```

The [**oqmgr**(8)](/oqmgr/8.md) daemon maintains the following queues:

- **incoming**

  Inbound mail from the network, or mail picked up by the local [**pickup**(8)](/pickup/8.md) agent from the **maildrop** directory.

- **active**

  Messages that the queue manager has opened for delivery. Only a limited number of messages is allowed to enter the **active** queue (leaky bucket strategy, for a fixed delivery rate).

- **deferred**

  Mail that could not be delivered upon the first attempt. The queue manager implements exponential backoff by doubling the time between delivery attempts.

- **corrupt**

  Unreadable or damaged queue files are moved here for inspection.

- **hold**

  Messages that are kept "on hold" are kept here until someone sets them free.

## DELIVERY STATUS REPORTS

```

```

The [**oqmgr**(8)](/oqmgr/8.md) daemon keeps an eye on per-message delivery status reports in the following directories. Each status report file has the same name as the corresponding message file:

- **bounce**

  Per-recipient status information about why mail is bounced. These files are maintained by the [**bounce**(8)](/bounce/8.md) daemon.

- **defer**

  Per-recipient status information about why mail is delayed. These files are maintained by the [**defer**(8)](/defer/8.md) daemon.

- **trace**

  Per-recipient status information as requested with the Postfix "**sendmail -v**" or "**sendmail -bv**" command. These files are maintained by the [**trace**(8)](/trace/8.md) daemon.

The [**oqmgr**(8)](/oqmgr/8.md) daemon is responsible for asking the [**bounce**(8)](/bounce/8.md), [**defer**(8)](/defer/8.md) or [**trace**(8)](/trace/8.md) daemons to send delivery reports.

## STRATEGIES

```

```

The queue manager implements a variety of strategies for either opening queue files (input) or for message delivery (output).

- **leaky bucket**

  This strategy limits the number of messages in the **active** queue and prevents the queue manager from running out of memory under heavy load.

- **fairness**

  When the **active** queue has room, the queue manager takes one message from the **incoming** queue and one from the **deferred** queue. This prevents a large mail backlog from blocking the delivery of new mail.

- **slow start**

  This strategy eliminates "thundering herd" problems by slowly adjusting the number of parallel deliveries to the same destination.

- **round robin**

  The queue manager sorts delivery requests by destination. Round-robin selection prevents one destination from dominating deliveries to other destinations.

- **exponential backoff**

  Mail that cannot be delivered upon the first attempt is deferred. The time interval between delivery attempts is doubled after each attempt.

- **destination status cache**

  The queue manager avoids unnecessary delivery attempts by maintaining a short-term, in-memory list of unreachable destinations.

## TRIGGERS

```

```

On an idle system, the queue manager waits for the arrival of trigger events, or it waits for a timer to go off. A trigger is a one-byte message. Depending on the message received, the queue manager performs one of the following actions (the message is followed by the symbolic constant used internally by the software):

- **D (QMGR\_REQ\_SCAN\_DEFERRED)**

  Start a deferred queue scan.  If a deferred queue scan is already in progress, that scan will be restarted as soon as it finishes.

- **I (QMGR\_REQ\_SCAN\_INCOMING)**

  Start an incoming queue scan. If an incoming queue scan is already in progress, that scan will be restarted as soon as it finishes.

- **A (QMGR\_REQ\_SCAN\_ALL)**

  Ignore deferred queue file time stamps. The request affects the next deferred queue scan.

- **F (QMGR\_REQ\_FLUSH\_DEAD)**

  Purge all information about dead transports and destinations.

- **W (TRIGGER\_REQ\_WAKEUP)**

  Wakeup call, This is used by the master server to instantiate servers that should not go away forever. The action is to start an incoming queue scan.

The [**oqmgr**(8)](/oqmgr/8.md) daemon reads an entire buffer worth of triggers. Multiple identical trigger requests are collapsed into one, and trigger requests are sorted so that **A** and **F** precede **D** and **I**. Thus, in order to force a deferred queue run, one would request **A F D**; in order to notify the queue manager of the arrival of new mail one would request **I**.

## STANDARDS

```
RFC 3463 (Enhanced status codes)
RFC 3464 (Delivery status notifications)
```

## SECURITY

```

```

The [**oqmgr**(8)](/oqmgr/8.md) daemon is not security sensitive. It reads single-character messages from untrusted local users, and thus may be susceptible to denial of service attacks. The [**oqmgr**(8)](/oqmgr/8.md) daemon does not talk to the outside world, and it can be run at fixed low privilege in a chrooted environment.

## DIAGNOSTICS

Problems and transactions are logged to the [**syslogd**(8)](/syslogd/8.md) or [**postlogd**(8)](/postlogd/8.md) daemon. Corrupted message files are saved to the **corrupt** queue for further inspection.

Depending on the setting of the **notify\_classes** parameter, the postmaster is notified of bounces and of other trouble.

## BUGS

A single queue manager process has to compete for disk access with multiple front-end processes such as [**cleanup**(8)](/cleanup/8.md). A sudden burst of inbound mail can negatively impact outbound delivery rates.

## CONFIGURATION PARAMETERS

```

```

Changes to **main.cf** are not picked up automatically, as [**oqmgr**(8)](/oqmgr/8.md) is a persistent process. Use the command "**postfix reload**" after a configuration change.

The text below provides only a parameter summary. See [**postconf**(5)](/postconf/5.md) for more details including examples.

In the text below, *transport* is the first field in a **master.cf** entry.

## COMPATIBILITY CONTROLS

```

```

Available before Postfix version 2.5:

- **allow\_min\_user (no)**

  Allow a sender or recipient address to have \`-' as the first character.

Available with Postfix version 2.7 and later:

- **default\_filter\_nexthop (empty)**

  When a content\_filter or FILTER request specifies no explicit next-hop destination, use $default\_filter\_nexthop instead; when that value is empty, use the domain in the recipient address.

## ACTIVE QUEUE CONTROLS

```

```

- **qmgr\_clog\_warn\_time (300s)**

  The minimal delay between warnings that a specific destination is clogging up the Postfix active queue.

- **qmgr\_message\_active\_limit (20000)**

  The maximal number of messages in the active queue.

- **qmgr\_message\_recipient\_limit (20000)**

  The maximal number of recipients held in memory by the Postfix queue manager, and the maximal size of the short-term, in-memory "dead" destination status cache.

## DELIVERY CONCURRENCY CONTROLS

```

```

- **qmgr\_fudge\_factor (100)**

  Obsolete feature: the percentage of delivery resources that a busy mail system will use up for delivery of a large mailing  list message.

- **initial\_destination\_concurrency (5)**

  The initial per-destination concurrency level for parallel delivery to the same destination.

- **default\_destination\_concurrency\_limit (20)**

  The default maximal number of parallel deliveries to the same destination.

- **transport\_destination\_concurrency\_limit ($default\_destination\_concurrency\_limit)**

  A transport-specific override for the default\_destination\_concurrency\_limit parameter value, where *transport* is the master.cf name of the message delivery transport.

Available in Postfix version 2.5 and later:

- **transport\_initial\_destination\_concurrency ($initial\_destination\_concurrency)**

  A transport-specific override for the initial\_destination\_concurrency parameter value, where *transport* is the master.cf name of the message delivery transport.

- **default\_destination\_concurrency\_failed\_cohort\_limit (1)**

  How many pseudo-cohorts must suffer connection or handshake failure before a specific destination is considered unavailable (and further delivery is suspended).

- **transport\_destination\_concurrency\_failed\_cohort\_limit ($default\_destination\_concurrency\_failed\_cohort\_limit)**

  A transport-specific override for the default\_destination\_concurrency\_failed\_cohort\_limit parameter value, where *transport* is the master.cf name of the message delivery transport.

- **default\_destination\_concurrency\_negative\_feedback (1)**

  The per-destination amount of delivery concurrency negative feedback, after a delivery completes with a connection or handshake failure.

- **transport\_destination\_concurrency\_negative\_feedback ($default\_destination\_concurrency\_negative\_feedback)**

  A transport-specific override for the default\_destination\_concurrency\_negative\_feedback parameter value, where *transport* is the master.cf name of the message delivery transport.

- **default\_destination\_concurrency\_positive\_feedback (1)**

  The per-destination amount of delivery concurrency positive feedback, after a delivery completes without connection or handshake failure.

- **transport\_destination\_concurrency\_positive\_feedback ($default\_destination\_concurrency\_positive\_feedback)**

  A transport-specific override for the default\_destination\_concurrency\_positive\_feedback parameter value, where *transport* is the master.cf name of the message delivery transport.

- **destination\_concurrency\_feedback\_debug (no)**

  Make the queue manager's feedback algorithm verbose for performance analysis purposes.

## RECIPIENT SCHEDULING CONTROLS

```

```

- **default\_destination\_recipient\_limit (50)**

  The default maximal number of recipients per message delivery.

- **transport\_destination\_recipient\_limit ($default\_destination\_recipient\_limit)**

  A transport-specific override for the default\_destination\_recipient\_limit parameter value, where *transport* is the master.cf name of the message delivery transport.

## OTHER RESOURCE AND RATE CONTROLS

```

```

- **minimal\_backoff\_time (300s)**

  The minimal time between attempts to deliver a deferred message; prior to Postfix 2.4 the default value was 1000s.

- **maximal\_backoff\_time (4000s)**

  The maximal time between attempts to deliver a deferred message.

- **maximal\_queue\_lifetime (5d)**

  Consider a message as undeliverable, when delivery fails with a temporary error, and the time in the queue has reached the maximal\_queue\_lifetime limit.

- **queue\_run\_delay (300s)**

  The time between deferred queue scans by the queue manager; prior to Postfix 2.4 the default value was 1000s.

- **transport\_retry\_time (60s)**

  The time between attempts by the Postfix queue manager to contact a malfunctioning message delivery transport.

Available in Postfix version 2.1 and later:

- **bounce\_queue\_lifetime (5d)**

  Consider a bounce message as undeliverable, when delivery fails with a temporary error, and the time in the queue has reached the bounce\_queue\_lifetime limit.

Available in Postfix version 2.5 and later:

- **default\_destination\_rate\_delay (0s)**

  The default amount of delay that is inserted between individual message deliveries to the same destination and over the same message delivery transport.

- **transport\_destination\_rate\_delay ($default\_destination\_rate\_delay)**

  A transport-specific override for the default\_destination\_rate\_delay parameter value, where *transport* is the master.cf name of the message delivery transport.

Available in Postfix version 3.1 and later:

- **default\_transport\_rate\_delay (0s)**

  The default amount of delay that is inserted between individual message deliveries over the same message delivery transport, regardless of destination.

- **transport\_transport\_rate\_delay ($default\_transport\_rate\_delay)**

  A transport-specific override for the default\_transport\_rate\_delay parameter value, where the initial *transport* in the parameter name is the master.cf name of the message delivery transport.

## SAFETY CONTROLS

```

```

- **qmgr\_daemon\_timeout (1000s)**

  How much time a Postfix queue manager process may take to handle a request before it is terminated by a built-in watchdog timer.

- **qmgr\_ipc\_timeout (60s)**

  The time limit for the queue manager to send or receive information over an internal communication channel.

Available in Postfix version 3.1 and later:

- **address\_verify\_pending\_request\_limit (see 'postconf -d' output)**

  A safety limit that prevents address verification requests from overwhelming the Postfix queue.

## MISCELLANEOUS CONTROLS

```

```

- **config\_directory (see 'postconf -d' output)**

  The default location of the Postfix main.cf and master.cf configuration files.

- **defer\_transports (empty)**

  The names of message delivery transports that should not deliver mail unless someone issues "**sendmail -q**" or equivalent.

- **delay\_logging\_resolution\_limit (2)**

  The maximal number of digits after the decimal point when logging delay values.

- **helpful\_warnings (yes)**

  Log warnings about problematic configuration settings, and provide helpful suggestions.

- **process\_id (read-only)**

  The process ID of a Postfix command or daemon process.

- **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".

Available in Postfix version 3.0 and later:

- **confirm\_delay\_cleared (no)**

  After sending a "your message is delayed" notification, inform the sender when the delay clears up.

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

## FILES

```
/var/spool/postfix/incoming, incoming queue
/var/spool/postfix/active, active queue
/var/spool/postfix/deferred, deferred queue
/var/spool/postfix/bounce, non-delivery status
/var/spool/postfix/defer, non-delivery status
/var/spool/postfix/trace, delivery status
```

## SEE ALSO

```
trivial-rewrite(8), address routing
bounce(8), delivery status reports
postconf(5), configuration parameters
master(5), generic daemon options
master(8), process manager
postlogd(8), Postfix logging
syslogd(8), system logging
```

## README FILES

```

```

Use "**postconf readme\_directory**" or "**postconf html\_directory**" to locate this information.

```
QSHAPE_README, Postfix queue analysis
```

## LICENSE

```

```

The Secure Mailer license must be distributed with this software.

## 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
```
