qmgr

title: qmgr(8)

text:
# qmgr(8)

## NAME
qmgr - Postfix queue manager

## SYNOPSIS

```
qmgr [generic Postfix daemon options]
```

## DESCRIPTION

The qmgr(8) 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) daemon. This program expects to be run from the master(8) 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 qmgr(8) daemon maintains the following queues:

incoming

Inbound mail from the network, or mail picked up by the local pickup(8) daemon 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 qmgr(8) 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) daemon.

defer

Per-recipient status information about why mail is delayed. These files are maintained by the defer(8) 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) daemon.

The qmgr(8) daemon is responsible for asking the bounce(8), defer(8) or trace(8) 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.

preemptive message scheduling

The queue manager attempts to minimize the average per-recipient delay while still preserving the correct per-message delays, using a sophisticated preemptive message scheduling.

## 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 qmgr(8) 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 qmgr(8) 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 qmgr(8) 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 syslogd(8) or postlogd(8). 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). A sudden burst of inbound mail can negatively impact outbound delivery rates.

## CONFIGURATION PARAMETERS

```

```

Changes to main.cf are not picked up automatically as qmgr(8) is a persistent process. Use the "postfix reload" command after a configuration change.

The text below provides only a parameter summary. See postconf(5) 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.

qmgr_message_recipient_minimum (10)

The minimal number of in-memory recipients for any message.

default_recipient_limit (20000)

The default per-transport upper limit on the number of in-memory recipients.

transport_recipient_limit ($default_recipient_limit)

A transport-specific override for the default_recipient_limit parameter value, where transport is the master.cf name of the message delivery transport.

default_extra_recipient_limit (1000)

The default value for the extra per-transport limit imposed on the number of in-memory recipients.

transport_extra_recipient_limit ($default_extra_recipient_limit)

A transport-specific override for the default_extra_recipient_limit parameter value, where transport is the master.cf name of the message delivery transport.

Available in Postfix version 2.4 and later:

default_recipient_refill_limit (100)

The default per-transport limit on the number of recipients refilled at once.

transport_recipient_refill_limit ($default_recipient_refill_limit)

A transport-specific override for the default_recipient_refill_limit parameter value, where transport is the master.cf name of the message delivery transport.

default_recipient_refill_delay (5s)

The default per-transport maximum delay between recipients refills.

transport_recipient_refill_delay ($default_recipient_refill_delay)

A transport-specific override for the default_recipient_refill_delay parameter value, where transport is the master.cf name of the message delivery transport.

## DELIVERY CONCURRENCY CONTROLS

```

```

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.

## MESSAGE SCHEDULING CONTROLS

```

```

default_delivery_slot_cost (5)

How often the Postfix queue manager's scheduler is allowed to preempt delivery of one message with another.

transport_delivery_slot_cost ($default_delivery_slot_cost)

A transport-specific override for the default_delivery_slot_cost parameter value, where transport is the master.cf name of the message delivery transport.

default_minimum_delivery_slots (3)

How many recipients a message must have in order to invoke the Postfix queue manager's scheduling algorithm at all.

transport_minimum_delivery_slots ($default_minimum_delivery_slots)

A transport-specific override for the default_minimum_delivery_slots parameter value, where transport is the master.cf name of the message delivery transport.

default_delivery_slot_discount (50)

The default value for transport-specific _delivery_slot_discount settings.

transport_delivery_slot_discount ($default_delivery_slot_discount)

A transport-specific override for the default_delivery_slot_discount parameter value, where transport is the master.cf name of the message delivery transport.

default_delivery_slot_loan (3)

The default value for transport-specific _delivery_slot_loan settings.

transport_delivery_slot_loan ($default_delivery_slot_loan)

A transport-specific override for the default_delivery_slot_loan 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 sub-second 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.

```
SCHEDULER_README, scheduling algorithm
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
Preemptive scheduler enhancements:
Patrik Rak
Modra 6
155 00, Prague, Czech Republic
Wietse Venema
Google, Inc.
111 8th Avenue
New York, NY 10011, USA
```


qmqpd

package: postfix

title: qmqpd(8)

text:
# qmqpd(8)

## NAME
qmqpd - Postfix QMQP server

## SYNOPSIS

```
qmqpd [generic Postfix daemon options]
```

## DESCRIPTION

The Postfix QMQP server receives one message per connection. Each message is piped through the cleanup(8) daemon, and is placed into the incoming queue as one single queue file. The program expects to be run from the master(8) process manager.

The QMQP server implements one access policy: only explicitly authorized client hosts are allowed to use the service.

## SECURITY

```

```

The QMQP server is moderately security-sensitive. It talks to QMQP clients and to DNS servers on the network. The QMQP server can be run chrooted at fixed low privilege.

## DIAGNOSTICS

Problems and transactions are logged to syslogd(8) or postlogd(8).

## BUGS

The QMQP protocol provides only one server reply per message delivery. It is therefore not possible to reject individual recipients.

The QMQP protocol requires the server to receive the entire message before replying. If a message is malformed, or if any netstring component is longer than acceptable, Postfix replies immediately and closes the connection. It is left up to the client to handle the situation.

## CONFIGURATION PARAMETERS

```

```

Changes to main.cf are picked up automatically, as qmqpd(8) processes run for only a limited amount of time. Use the command "postfix reload" to speed up a change.

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

## CONTENT INSPECTION CONTROLS

```

```

content_filter (empty)

After the message is queued, send the entire message to the specified transport:destination.

receive_override_options (empty)

Enable or disable recipient validation, built-in content filtering, or address mapping.

## SMTPUTF8 CONTROLS

```

```

Preliminary SMTPUTF8 support is introduced with Postfix 3.0.

smtputf8_enable (yes)

Enable preliminary SMTPUTF8 support for the protocols described in RFC 6531..6533.

smtputf8_autodetect_classes (sendmail, verify)

Detect that a message requires SMTPUTF8 support for the specified mail origin classes.

Available in Postfix version 3.2 and later:

enable_idna2003_compatibility (no)

Enable 'transitional' compatibility between IDNA2003 and IDNA2008, when converting UTF-8 domain names to/from the ASCII form that is used for DNS lookups.

## RESOURCE AND RATE CONTROLS

```

```

line_length_limit (2048)

Upon input, long lines are chopped up into pieces of at most this length; upon delivery, long lines are reconstructed.

hopcount_limit (50)

The maximal number of Received: message headers that is allowed in the primary message headers.

message_size_limit (10240000)

The maximal size in bytes of a message, including envelope information.

qmqpd_timeout (300s)

The time limit for sending or receiving information over the network.

## TROUBLE SHOOTING CONTROLS

```

```

debug_peer_level (2)

The increment in verbose logging level when a nexthop destination, remote client or server name or network address matches a pattern given with the debug_peer_list parameter.

debug_peer_list (empty)

Optional list of nexthop destination, remote client or server name or network address patterns that, if matched, cause the verbose logging level to increase by the amount specified in $debug_peer_level.

soft_bounce (no)

Safety net to keep mail queued that would otherwise be returned to the sender.

## TARPIT CONTROLS

```

```

qmqpd_error_delay (1s)

How long the Postfix QMQP server will pause before sending a negative reply to the remote QMQP client.

## MISCELLANEOUS CONTROLS

```

```

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.

ipc_timeout (3600s)

The time limit for sending or receiving information over an internal communication channel.

max_idle (100s)

The maximum amount of time that an idle Postfix daemon process waits for an incoming connection before terminating voluntarily.

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.

process_name (read-only)

The process name of a Postfix command or daemon process.

qmqpd_authorized_clients (empty)

What remote QMQP clients are allowed to connect to the Postfix QMQP server port.

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

verp_delimiter_filter (-=+)

The characters Postfix accepts as VERP delimiter characters on the Postfix sendmail(1) command line and in SMTP commands.

Available in Postfix version 2.5 and later:

qmqpd_client_port_logging (no)

Enable logging of the remote QMQP client port in addition to the hostname and IP address.

Available in Postfix 3.3 and later:

service_name (read-only)

The master.cf service name of a Postfix daemon process.

## SEE ALSO

```
http://cr.yp.to/proto/qmqp.html, QMQP protocol
cleanup(8), message canonicalization
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.

```
QMQP_README, Postfix ezmlm-idx howto.
```

## LICENSE

```

```

The Secure Mailer license must be distributed with this software.

## HISTORY

The qmqpd service was introduced with Postfix version 1.1.

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


scache

title: scache(8)

text:
# scache(8)

## NAME
scache - Postfix shared connection cache server

## SYNOPSIS

```
scache [generic Postfix daemon options]
```

## DESCRIPTION

The scache(8) server maintains a shared multi-connection cache. This information can be used by, for example, Postfix SMTP clients or other Postfix delivery agents.

The connection cache is organized into logical destination names, physical endpoint names, and connections.

As a specific example, logical SMTP destinations specify (transport, domain, port), and physical SMTP endpoints specify (transport, IP address, port). An SMTP connection may be saved after a successful mail transaction.

In the general case, one logical destination may refer to zero or more physical endpoints, one physical endpoint may be referenced by zero or more logical destinations, and one endpoint may refer to zero or more connections.

The exact syntax of a logical destination or endpoint name is application dependent; the scache(8) server does not care. A connection is stored as a file descriptor together with application-dependent information that is needed to re-activate a connection object. Again, the scache(8) server is completely unaware of the details of that information.

All information is stored with a finite time to live (ttl). The connection cache daemon terminates when no client is connected for max_idle time units.

This server implements the following requests:

save_endp ttl endpoint endpoint_properties file_descriptor

Save the specified file descriptor and connection property data under the specified endpoint name. The endpoint properties are used by the client to re-activate a passivated connection object.

find_endp endpoint

Look up cached properties and a cached file descriptor for the specified endpoint.

save_dest ttl destination destination_properties endpoint

Save the binding between a logical destination and an endpoint under the destination name, together with destination specific connection properties. The destination properties are used by the client to re-activate a passivated connection object.

find_dest destination

Look up cached destination properties, cached endpoint properties, and a cached file descriptor for the specified logical destination.

## SECURITY

```

```

The scache(8) server is not security-sensitive. It does not talk to the network, and it does not talk to local users. The scache(8) server can run chrooted at fixed low privilege.

The scache(8) server is not a trusted process. It must not be used to store information that is security sensitive.

## DIAGNOSTICS

Problems and transactions are logged to syslogd(8) or postlogd(8).

## BUGS

The session cache cannot be shared among multiple machines.

When a connection expires from the cache, it is closed without the appropriate protocol specific handshake.

## CONFIGURATION PARAMETERS

```

```

Changes to main.cf are picked up automatically as scache(8) processes run for only a limited amount of time. Use the command "postfix reload" to speed up a change.

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

## RESOURCE CONTROLS

```

```

connection_cache_ttl_limit (2s)

The maximal time-to-live value that the scache(8) connection cache server allows.

connection_cache_status_update_time (600s)

How frequently the scache(8) server logs usage statistics with connection cache hit and miss rates for logical destinations and for physical endpoints.

## MISCELLANEOUS CONTROLS

```

```

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.

ipc_timeout (3600s)

The time limit for sending or receiving information over an internal communication channel.

max_idle (100s)

The maximum amount of time that an idle Postfix daemon process waits for an incoming connection before terminating voluntarily.

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.

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 3.3 and later:

service_name (read-only)

The master.cf service name of a Postfix daemon process.

## SEE ALSO

```
smtp(8), SMTP client
postconf(5), configuration parameters
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.

```
CONNECTION_CACHE_README, Postfix connection cache
```

## LICENSE

```

```

The Secure Mailer license must be distributed with this software.

## HISTORY

This service was introduced with Postfix version 2.2.

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


showq

title: showq(8)

text:
# showq(8)

## NAME
showq - list the Postfix mail queue

## SYNOPSIS

```
showq [generic Postfix daemon options]
```

## DESCRIPTION

The showq(8) daemon reports the Postfix mail queue status. The output is meant to be formatted by the postqueue(1) command, as it emulates the Sendmail `mailq' command.

The showq(8) daemon can also be run in stand-alone mode by the superuser. This mode of operation is used to emulate the `mailq' command while the Postfix mail system is down.

## SECURITY

```

```

The showq(8) daemon can run in a chroot jail at fixed low privilege, and takes no input from the client. Its service port is accessible to local untrusted users, so the service can be susceptible to denial of service attacks.

## STANDARDS

```

```

None. The showq(8) daemon does not interact with the outside world.

## DIAGNOSTICS

Problems and transactions are logged to syslogd(8) or postlogd(8).

## CONFIGURATION PARAMETERS

```

```

Changes to main.cf are picked up automatically as showq(8) processes run for only a limited amount of time. Use the command "postfix reload" to speed up a change.

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

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.

duplicate_filter_limit (1000)

The maximal number of addresses remembered by the address duplicate filter for aliases(5) or virtual(5) alias expansion, or for showq(8) queue displays.

empty_address_recipient (MAILER-DAEMON)

The recipient of mail addressed to the null address.

ipc_timeout (3600s)

The time limit for sending or receiving information over an internal communication channel.

max_idle (100s)

The maximum amount of time that an idle Postfix daemon process waits for an incoming connection before terminating voluntarily.

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.

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 2.9 and later:

enable_long_queue_ids (no)

Enable long, non-repeating, queue IDs (queue file names).

Available in Postfix 3.3 and later:

service_name (read-only)

The master.cf service name of a Postfix daemon process.

## FILES

```
/var/spool/postfix, queue directories
```

## SEE ALSO

```
pickup(8), local mail pickup service
cleanup(8), canonicalize and enqueue mail
qmgr(8), queue manager
postconf(5), configuration parameters
master(8), process manager
postlogd(8), Postfix logging
syslogd(8), system logging
```

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


smtp

title: smtp(8)

text:
# smtp(8)

## NAME
smtp - Postfix SMTP+LMTP client

## SYNOPSIS

```
smtp [generic Postfix daemon options] [flags=DORX]
```

## DESCRIPTION

The Postfix SMTP+LMTP client implements the SMTP and LMTP mail delivery protocols. It processes message delivery requests from the queue manager. Each request specifies a queue file, a sender address, a domain or host to deliver to, and recipient information. This program expects to be run from the master(8) process manager.

The SMTP+LMTP client updates the queue file and marks recipients as finished, or it informs the queue manager that delivery should be tried again at a later time. Delivery status reports are sent to the bounce(8), defer(8) or trace(8) daemon as appropriate.

The SMTP+LMTP client looks up a list of mail exchanger addresses for the destination host, sorts the list by preference, and connects to each listed address until it finds a server that responds.

When a server is not reachable, or when mail delivery fails due to a recoverable error condition, the SMTP+LMTP client will try to deliver the mail to an alternate host.

After a successful mail transaction, a connection may be saved to the scache(8) connection cache server, so that it may be used by any SMTP+LMTP client for a subsequent transaction.

By default, connection caching is enabled temporarily for destinations that have a high volume of mail in the active queue. Connection caching can be enabled permanently for specific destinations.

## SMTP DESTINATION SYNTAX

```

```

The Postfix SMTP+LMTP client supports multiple destinations separated by comma or whitespace (Postfix 3.5 and later). SMTP destinations have the following form:

domainname

domainname:port

Look up the mail exchangers for the specified domain, and connect to the specified port (default: smtp).

[hostname]

[hostname]:port

Look up the address(es) of the specified host, and connect to the specified port (default: smtp).

[address]

[address]:port

Connect to the host at the specified address, and connect to the specified port (default: smtp). An IPv6 address must be formatted as [ipv6:address].

## LMTP DESTINATION SYNTAX

```

```

The Postfix SMTP+LMTP client supports multiple destinations separated by comma or whitespace (Postfix 3.5 and later). LMTP destinations have the following form:

unix:pathname

Connect to the local UNIX-domain server that is bound to the specified pathname. If the process runs chrooted, an absolute pathname is interpreted relative to the Postfix queue directory.

inet:hostname

inet:hostname:port

inet:[address]

inet:[address]:port

Connect to the specified TCP port on the specified local or remote host. If no port is specified, connect to the port defined as lmtp in services(4). If no such service is found, the lmtp_tcp_port configuration parameter (default value of 24) will be used. An IPv6 address must be formatted as [ipv6:address].

## SINGLE-RECIPIENT DELIVERY

```

```

By default, the Postfix SMTP+LMTP client delivers mail to multiple recipients per delivery request. This is undesirable when prepending a Delivered-to: or X-Original-To: message header. To prevent Postfix from sending multiple recipients per delivery request, specify

```
    transport_destination_recipient_limit = 1
```

in the Postfix main.cf file, where transport is the name in the first column of the Postfix master.cf entry for this mail delivery service.

## COMMAND ATTRIBUTE SYNTAX

```

```

flags=DORX (optional)

Optional message processing flags.

D

Prepend a "Delivered-To: recipient" message header with the envelope recipient address. Note: for this to work, the transport_destination_recipient_limit must be 1 (see SINGLE-RECIPIENT DELIVERY above for details). The D flag also enforces loop detection: if a message already contains a Delivered-To: header with the same recipient address, then the message is returned as undeliverable. The address comparison is case insensitive.

This feature is available as of Postfix 3.5.

O

Prepend an "X-Original-To: recipient" message header with the recipient address as given to Postfix. Note: for this to work, the transport_destination_recipient_limit must be 1 (see SINGLE-RECIPIENT DELIVERY above for details). This feature is available as of Postfix 3.5.

R

Prepend a "Return-Path: <sender>" message header with the envelope sender address. This feature is available as of Postfix 3.5.

X

Indicates that the delivery is final. This flag affects the status reported in "success" DSN (delivery status notification) messages, and changes it from "relayed" into "delivered". This feature is available as of Postfix 3.5.

## SECURITY

```
The SMTP+LMTP client is moderately security-sensitive. It
talks to SMTP or LMTP servers and to DNS servers on the
network. The SMTP+LMTP client can be run chrooted at fixed
low privilege.
```

## STANDARDS

```
RFC 821 (SMTP protocol)
RFC 822 (ARPA Internet Text Messages)
RFC 1651 (SMTP service extensions)
RFC 1652 (8bit-MIME transport)
RFC 1870 (Message Size Declaration)
RFC 2033 (LMTP protocol)
RFC 2034 (SMTP Enhanced Error Codes)
RFC 2045 (MIME: Format of Internet Message Bodies)
RFC 2046 (MIME: Media Types)
RFC 2554 (AUTH command)
RFC 2821 (SMTP protocol)
RFC 2920 (SMTP Pipelining)
RFC 3207 (STARTTLS command)
RFC 3461 (SMTP DSN Extension)
RFC 3463 (Enhanced Status Codes)
RFC 4954 (AUTH command)
RFC 5321 (SMTP protocol)
RFC 6531 (Internationalized SMTP)
RFC 6533 (Internationalized Delivery Status Notifications)
RFC 7672 (SMTP security via opportunistic DANE TLS)
```

## DIAGNOSTICS

Problems and transactions are logged to syslogd(8) or postlogd(8). Corrupted message files are marked so that the queue manager can move them to the corrupt queue for further inspection.

Depending on the setting of the notify_classes parameter, the postmaster is notified of bounces, protocol problems, and of other trouble.

## BUGS

SMTP and LMTP connection reuse for TLS (without closing the SMTP or LMTP connection) is not supported before Postfix 3.4.

SMTP and LMTP connection reuse assumes that SASL credentials are valid for all destinations that map onto the same IP address and TCP port.

## CONFIGURATION PARAMETERS

```

```

Before Postfix version 2.3, the LMTP client is a separate program that implements only a subset of the functionality available with SMTP: there is no support for TLS, and connections are cached in-process, making it ineffective when the client is used for multiple domains.

Most smtp_xxx configuration parameters have an lmtp_xxx "mirror" parameter for the equivalent LMTP feature. This document describes only those LMTP-related parameters that aren't simply "mirror" parameters.

Changes to main.cf are picked up automatically, as smtp(8) processes run for only a limited amount of time. Use the command "postfix reload" to speed up a change.

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

## COMPATIBILITY CONTROLS

```

```

ignore_mx_lookup_error (no)

Ignore DNS MX lookups that produce no response.

smtp_always_send_ehlo (yes)

Always send EHLO at the start of an SMTP session.

smtp_never_send_ehlo (no)

Never send EHLO at the start of an SMTP session.

smtp_defer_if_no_mx_address_found (no)

Defer mail delivery when no MX record resolves to an IP address.

smtp_line_length_limit (998)

The maximal length of message header and body lines that Postfix will send via SMTP.

smtp_pix_workaround_delay_time (10s)

How long the Postfix SMTP client pauses before sending ".<CR><LF>" in order to work around the PIX firewall "<CR><LF>.<CR><LF>" bug.

smtp_pix_workaround_threshold_time (500s)

How long a message must be queued before the Postfix SMTP client turns on the PIX firewall "<CR><LF>.<CR><LF>" bug workaround for delivery through firewalls with "smtp fixup" mode turned on.

smtp_pix_workarounds (disable_esmtp, delay_dotcrlf)

A list that specifies zero or more workarounds for CISCO PIX firewall bugs.

smtp_pix_workaround_maps (empty)

Lookup tables, indexed by the remote SMTP server address, with per-destination workarounds for CISCO PIX firewall bugs.

smtp_quote_rfc821_envelope (yes)

Quote addresses in Postfix SMTP client MAIL FROM and RCPT TO commands as required by RFC 5321.

smtp_reply_filter (empty)

A mechanism to transform replies from remote SMTP servers one line at a time.

smtp_skip_5xx_greeting (yes)

Skip remote SMTP servers that greet with a 5XX status code.

smtp_skip_quit_response (yes)

Do not wait for the response to the SMTP QUIT command.

Available in Postfix version 2.0 and earlier:

smtp_skip_4xx_greeting (yes)

Skip SMTP servers that greet with a 4XX status code (go away, try again later).

Available in Postfix version 2.2 and later:

smtp_discard_ehlo_keyword_address_maps (empty)

Lookup tables, indexed by the remote SMTP server address, with case insensitive lists of EHLO keywords (pipelining, starttls, auth, etc.) that the Postfix SMTP client will ignore in the EHLO response from a remote SMTP server.

smtp_discard_ehlo_keywords (empty)

A case insensitive list of EHLO keywords (pipelining, starttls, auth, etc.) that the Postfix SMTP client will ignore in the EHLO response from a remote SMTP server.

smtp_generic_maps (empty)

Optional lookup tables that perform address rewriting in the Postfix SMTP client, typically to transform a locally valid address into a globally valid address when sending mail across the Internet.

Available in Postfix version 2.2.9 and later:

smtp_cname_overrides_servername (version dependent)

When the remote SMTP servername is a DNS CNAME, replace the servername with the result from CNAME expansion for the purpose of logging, SASL password lookup, TLS policy decisions, or TLS certificate verification.

Available in Postfix version 2.3 and later:

lmtp_discard_lhlo_keyword_address_maps (empty)

Lookup tables, indexed by the remote LMTP server address, with case insensitive lists of LHLO keywords (pipelining, starttls, auth, etc.) that the Postfix LMTP client will ignore in the LHLO response from a remote LMTP server.

lmtp_discard_lhlo_keywords (empty)

A case insensitive list of LHLO keywords (pipelining, starttls, auth, etc.) that the Postfix LMTP client will ignore in the LHLO response from a remote LMTP server.

Available in Postfix version 2.4.4 and later:

send_cyrus_sasl_authzid (no)

When authenticating to a remote SMTP or LMTP server with the default setting "no", send no SASL authoriZation ID (authzid); send only the SASL authentiCation ID (authcid) plus the authcid's password.

Available in Postfix version 2.5 and later:

smtp_header_checks (empty)

Restricted header_checks(5) tables for the Postfix SMTP client.

smtp_mime_header_checks (empty)

Restricted mime_header_checks(5) tables for the Postfix SMTP client.

smtp_nested_header_checks (empty)

Restricted nested_header_checks(5) tables for the Postfix SMTP client.

smtp_body_checks (empty)

Restricted body_checks(5) tables for the Postfix SMTP client.

Available in Postfix version 2.6 and later:

tcp_windowsize (0)

An optional workaround for routers that break TCP window scaling.

Available in Postfix version 2.8 and later:

smtp_dns_resolver_options (empty)

DNS Resolver options for the Postfix SMTP client.

Available in Postfix version 2.9 and later:

smtp_per_record_deadline (no)

Change the behavior of the smtp_*_timeout time limits, from a time limit per read or write system call, to a time limit to send or receive a complete record (an SMTP command line, SMTP response line, SMTP message content line, or TLS protocol message).

smtp_send_dummy_mail_auth (no)

Whether or not to append the "AUTH=<>" option to the MAIL FROM command in SASL-authenticated SMTP sessions.

Available in Postfix version 2.11 and later:

smtp_dns_support_level (empty)

Level of DNS support in the Postfix SMTP client.

Available in Postfix version 3.0 and later:

smtp_delivery_status_filter ($default_delivery_status_filter)

Optional filter for the smtp(8) delivery agent to change the delivery status code or explanatory text of successful or unsuccessful deliveries.

smtp_dns_reply_filter (empty)

Optional filter for Postfix SMTP client DNS lookup results.

Available in Postfix version 3.3 and later:

smtp_balance_inet_protocols (yes)

When a remote destination resolves to a combination of IPv4 and IPv6 addresses, ensure that the Postfix SMTP client can try both address types before it runs into the smtp_mx_address_limit.

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

Available in Postfix 3.6 and later:

dnssec_probe (ns:.)

The DNS query type (default: "ns") and DNS query name (default: ".") that Postfix may use to determine whether DNSSEC validation is available.

known_tcp_ports (lmtp=24, smtp=25, smtps=submissions=465, submission=587)

Optional setting that avoids lookups in the services(5) database.

## MIME PROCESSING CONTROLS

```

```

Available in Postfix version 2.0 and later:

disable_mime_output_conversion (no)

Disable the conversion of 8BITMIME format to 7BIT format.

mime_boundary_length_limit (2048)

The maximal length of MIME multipart boundary strings.

mime_nesting_limit (100)

The maximal recursion level that the MIME processor will handle.

## EXTERNAL CONTENT INSPECTION CONTROLS

```

```

Available in Postfix version 2.1 and later:

smtp_send_xforward_command (no)

Send the non-standard XFORWARD command when the Postfix SMTP server EHLO response announces XFORWARD support.

## SASL AUTHENTICATION CONTROLS

```

```

smtp_sasl_auth_enable (no)

Enable SASL authentication in the Postfix SMTP client.

smtp_sasl_password_maps (empty)

Optional Postfix SMTP client lookup tables with one username:password entry per sender, remote hostname or next-hop domain.

smtp_sasl_security_options (noplaintext, noanonymous)

Postfix SMTP client SASL security options; as of Postfix 2.3 the list of available features depends on the SASL client implementation that is selected with smtp_sasl_type.

Available in Postfix version 2.2 and later:

smtp_sasl_mechanism_filter (empty)

If non-empty, a Postfix SMTP client filter for the remote SMTP server's list of offered SASL mechanisms.

Available in Postfix version 2.3 and later:

smtp_sender_dependent_authentication (no)

Enable sender-dependent authentication in the Postfix SMTP client; this is available only with SASL authentication, and disables SMTP connection caching to ensure that mail from different senders will use the appropriate credentials.

smtp_sasl_path (empty)

Implementation-specific information that the Postfix SMTP client passes through to the SASL plug-in implementation that is selected with smtp_sasl_type.

smtp_sasl_type (cyrus)

The SASL plug-in type that the Postfix SMTP client should use for authentication.

Available in Postfix version 2.5 and later:

smtp_sasl_auth_cache_name (empty)

An optional table to prevent repeated SASL authentication failures with the same remote SMTP server hostname, username and password.

smtp_sasl_auth_cache_time (90d)

The maximal age of an smtp_sasl_auth_cache_name entry before it is removed.

smtp_sasl_auth_soft_bounce (yes)

When a remote SMTP server rejects a SASL authentication request with a 535 reply code, defer mail delivery instead of returning mail as undeliverable.

Available in Postfix version 2.9 and later:

smtp_send_dummy_mail_auth (no)

Whether or not to append the "AUTH=<>" option to the MAIL FROM command in SASL-authenticated SMTP sessions.

## STARTTLS SUPPORT CONTROLS

```

```

Detailed information about STARTTLS configuration may be found in the TLS_README document.

smtp_tls_security_level (empty)

The default SMTP TLS security level for the Postfix SMTP client; when a non-empty value is specified, this overrides the obsolete parameters smtp_use_tls, smtp_enforce_tls, and smtp_tls_enforce_peername.

smtp_sasl_tls_security_options ($smtp_sasl_security_options)

The SASL authentication security options that the Postfix SMTP client uses for TLS encrypted SMTP sessions.

smtp_starttls_timeout (300s)

Time limit for Postfix SMTP client write and read operations during TLS startup and shutdown handshake procedures.

smtp_tls_CAfile (empty)

A file containing CA certificates of root CAs trusted to sign either remote SMTP server certificates or intermediate CA certificates.

smtp_tls_CApath (empty)

Directory with PEM format Certification Authority certificates that the Postfix SMTP client uses to verify a remote SMTP server certificate.

smtp_tls_cert_file (empty)

File with the Postfix SMTP client RSA certificate in PEM format.

smtp_tls_mandatory_ciphers (medium)

The minimum TLS cipher grade that the Postfix SMTP client will use with mandatory TLS encryption.

smtp_tls_exclude_ciphers (empty)

List of ciphers or cipher types to exclude from the Postfix SMTP client cipher list at all TLS security levels.

smtp_tls_mandatory_exclude_ciphers (empty)

Additional list of ciphers or cipher types to exclude from the Postfix SMTP client cipher list at mandatory TLS security levels.

smtp_tls_dcert_file (empty)

File with the Postfix SMTP client DSA certificate in PEM format.

smtp_tls_dkey_file ($smtp_tls_dcert_file)

File with the Postfix SMTP client DSA private key in PEM format.

smtp_tls_key_file ($smtp_tls_cert_file)

File with the Postfix SMTP client RSA private key in PEM format.

smtp_tls_loglevel (0)

Enable additional Postfix SMTP client logging of TLS activity.

smtp_tls_note_starttls_offer (no)

Log the hostname of a remote SMTP server that offers STARTTLS, when TLS is not already enabled for that server.

smtp_tls_policy_maps (empty)

Optional lookup tables with the Postfix SMTP client TLS security policy by next-hop destination; when a non-empty value is specified, this overrides the obsolete smtp_tls_per_site parameter.

smtp_tls_mandatory_protocols (see 'postconf -d' output)

TLS protocols that the Postfix SMTP client will use with mandatory TLS encryption.

smtp_tls_scert_verifydepth (9)

The verification depth for remote SMTP server certificates.

smtp_tls_secure_cert_match (nexthop, dot-nexthop)

How the Postfix SMTP client verifies the server certificate peername for the "secure" TLS security level.

smtp_tls_session_cache_database (empty)

Name of the file containing the optional Postfix SMTP client TLS session cache.

smtp_tls_session_cache_timeout (3600s)

The expiration time of Postfix SMTP client TLS session cache information.

smtp_tls_verify_cert_match (hostname)

How the Postfix SMTP client verifies the server certificate peername for the "verify" TLS security level.

tls_daemon_random_bytes (32)

The number of pseudo-random bytes that an smtp(8) or smtpd(8) process requests from the tlsmgr(8) server in order to seed its internal pseudo random number generator (PRNG).

tls_high_cipherlist (see 'postconf -d' output)

The OpenSSL cipherlist for "high" grade ciphers.

tls_medium_cipherlist (see 'postconf -d' output)

The OpenSSL cipherlist for "medium" or higher grade ciphers.

tls_low_cipherlist (see 'postconf -d' output)

The OpenSSL cipherlist for "low" or higher grade ciphers.

tls_export_cipherlist (see 'postconf -d' output)

The OpenSSL cipherlist for "export" or higher grade ciphers.

tls_null_cipherlist (eNULL:!aNULL)

The OpenSSL cipherlist for "NULL" grade ciphers that provide authentication without encryption.

Available in Postfix version 2.4 and later:

smtp_sasl_tls_verified_security_options ($smtp_sasl_tls_security_options)

The SASL authentication security options that the Postfix SMTP client uses for TLS encrypted SMTP sessions with a verified server certificate.

Available in Postfix version 2.5 and later:

smtp_tls_fingerprint_cert_match (empty)

List of acceptable remote SMTP server certificate fingerprints for the "fingerprint" TLS security level (smtp_tls_security_level = fingerprint).

smtp_tls_fingerprint_digest (see 'postconf -d' output)

The message digest algorithm used to construct remote SMTP server certificate fingerprints.

Available in Postfix version 2.6 and later:

smtp_tls_protocols (see postconf -d output)

TLS protocols that the Postfix SMTP client will use with opportunistic TLS encryption.

smtp_tls_ciphers (medium)

The minimum TLS cipher grade that the Postfix SMTP client will use with opportunistic TLS encryption.

smtp_tls_eccert_file (empty)

File with the Postfix SMTP client ECDSA certificate in PEM format.

smtp_tls_eckey_file ($smtp_tls_eccert_file)

File with the Postfix SMTP client ECDSA private key in PEM format.

Available in Postfix version 2.7 and later:

smtp_tls_block_early_mail_reply (no)

Try to detect a mail hijacking attack based on a TLS protocol vulnerability (CVE-2009-3555), where an attacker prepends malicious HELO, MAIL, RCPT, DATA commands to a Postfix SMTP client TLS session.

Available in Postfix version 2.8 and later:

tls_disable_workarounds (see 'postconf -d' output)

List or bit-mask of OpenSSL bug work-arounds to disable.

Available in Postfix version 2.11-3.1:

tls_dane_digest_agility (on)

Configure RFC7671 DANE TLSA digest algorithm agility.

tls_dane_trust_anchor_digest_enable (yes)

Enable support for RFC 6698 (DANE TLSA) DNS records that contain digests of trust-anchors with certificate usage "2".

Available in Postfix version 2.11 and later:

smtp_tls_trust_anchor_file (empty)

Zero or more PEM-format files with trust-anchor certificates and/or public keys.

smtp_tls_force_insecure_host_tlsa_lookup (no)

Lookup the associated DANE TLSA RRset even when a hostname is not an alias and its address records lie in an unsigned zone.

tlsmgr_service_name (tlsmgr)

The name of the tlsmgr(8) service entry in master.cf.

Available in Postfix version 3.0 and later:

smtp_tls_wrappermode (no)

Request that the Postfix SMTP client connects using the legacy SMTPS protocol instead of using the STARTTLS command.

Available in Postfix version 3.1 and later:

smtp_tls_dane_insecure_mx_policy (see 'postconf -d' output)

The TLS policy for MX hosts with "secure" TLSA records when the nexthop destination security level is dane, but the MX record was found via an "insecure" MX lookup.

Available in Postfix version 3.4 and later:

smtp_tls_connection_reuse (no)

Try to make multiple deliveries per TLS-encrypted connection.

smtp_tls_chain_files (empty)

List of one or more PEM files, each holding one or more private keys directly followed by a corresponding certificate chain.

smtp_tls_servername (empty)

Optional name to send to the remote SMTP server in the TLS Server Name Indication (SNI) extension.

Available in Postfix 3.5, 3.4.6, 3.3.5, 3.2.10, 3.1.13 and later:

tls_fast_shutdown_enable (yes)

A workaround for implementations that hang Postfix while shutting down a TLS session, until Postfix times out.

## OBSOLETE STARTTLS CONTROLS

```

```

The following configuration parameters exist for compatibility with Postfix versions before 2.3. Support for these will be removed in a future release.

smtp_use_tls (no)

Opportunistic mode: use TLS when a remote SMTP server announces STARTTLS support, otherwise send the mail in the clear.

smtp_enforce_tls (no)

Enforcement mode: require that remote SMTP servers use TLS encryption, and never send mail in the clear.

smtp_tls_enforce_peername (yes)

With mandatory TLS encryption, require that the remote SMTP server hostname matches the information in the remote SMTP server certificate.

smtp_tls_per_site (empty)

Optional lookup tables with the Postfix SMTP client TLS usage policy by next-hop destination and by remote SMTP server hostname.

smtp_tls_cipherlist (empty)

Obsolete Postfix < 2.3 control for the Postfix SMTP client TLS cipher list.

## RESOURCE AND RATE CONTROLS

```

```

smtp_connect_timeout (30s)

The Postfix SMTP client time limit for completing a TCP connection, or zero (use the operating system built-in time limit).

smtp_helo_timeout (300s)

The Postfix SMTP client time limit for sending the HELO or EHLO command, and for receiving the initial remote SMTP server response.

lmtp_lhlo_timeout (300s)

The Postfix LMTP client time limit for sending the LHLO command, and for receiving the initial remote LMTP server response.

smtp_xforward_timeout (300s)

The Postfix SMTP client time limit for sending the XFORWARD command, and for receiving the remote SMTP server response.

smtp_mail_timeout (300s)

The Postfix SMTP client time limit for sending the MAIL FROM command, and for receiving the remote SMTP server response.

smtp_rcpt_timeout (300s)

The Postfix SMTP client time limit for sending the SMTP RCPT TO command, and for receiving the remote SMTP server response.

smtp_data_init_timeout (120s)

The Postfix SMTP client time limit for sending the SMTP DATA command, and for receiving the remote SMTP server response.

smtp_data_xfer_timeout (180s)

The Postfix SMTP client time limit for sending the SMTP message content.

smtp_data_done_timeout (600s)

The Postfix SMTP client time limit for sending the SMTP ".", and for receiving the remote SMTP server response.

smtp_quit_timeout (300s)

The Postfix SMTP client time limit for sending the QUIT command, and for receiving the remote SMTP server response.

Available in Postfix version 2.1 and later:

smtp_mx_address_limit (5)

The maximal number of MX (mail exchanger) IP addresses that can result from Postfix SMTP client mail exchanger lookups, or zero (no limit).

smtp_mx_session_limit (2)

The maximal number of SMTP sessions per delivery request before the Postfix SMTP client gives up or delivers to a fall-back relay host, or zero (no limit).

smtp_rset_timeout (20s)

The Postfix SMTP client time limit for sending the RSET command, and for receiving the remote SMTP server response.

Available in Postfix version 2.2 and earlier:

lmtp_cache_connection (yes)

Keep Postfix LMTP client connections open for up to $max_idle seconds.

Available in Postfix version 2.2 and later:

smtp_connection_cache_destinations (empty)

Permanently enable SMTP connection caching for the specified destinations.

smtp_connection_cache_on_demand (yes)

Temporarily enable SMTP connection caching while a destination has a high volume of mail in the active queue.

smtp_connection_reuse_time_limit (300s)

The amount of time during which Postfix will use an SMTP connection repeatedly.

smtp_connection_cache_time_limit (2s)

When SMTP connection caching is enabled, the amount of time that an unused SMTP client socket is kept open before it is closed.

Available in Postfix version 2.3 and later:

connection_cache_protocol_timeout (5s)

Time limit for connection cache connect, send or receive operations.

Available in Postfix version 2.9 and later:

smtp_per_record_deadline (no)

Change the behavior of the smtp_*_timeout time limits, from a time limit per read or write system call, to a time limit to send or receive a complete record (an SMTP command line, SMTP response line, SMTP message content line, or TLS protocol message).

Available in Postfix version 2.11 and later:

smtp_connection_reuse_count_limit (0)

When SMTP connection caching is enabled, the number of times that an SMTP session may be reused before it is closed, or zero (no limit).

Available in Postfix version 3.4 and later:

smtp_tls_connection_reuse (no)

Try to make multiple deliveries per TLS-encrypted connection.

Implemented in the qmgr(8) daemon:

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.

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.

## SMTPUTF8 CONTROLS

```

```

Preliminary SMTPUTF8 support is introduced with Postfix 3.0.

smtputf8_enable (yes)

Enable preliminary SMTPUTF8 support for the protocols described in RFC 6531..6533.

smtputf8_autodetect_classes (sendmail, verify)

Detect that a message requires SMTPUTF8 support for the specified mail origin classes.

Available in Postfix version 3.2 and later:

enable_idna2003_compatibility (no)

Enable 'transitional' compatibility between IDNA2003 and IDNA2008, when converting UTF-8 domain names to/from the ASCII form that is used for DNS lookups.

## TROUBLE SHOOTING CONTROLS

```

```

debug_peer_level (2)

The increment in verbose logging level when a nexthop destination, remote client or server name or network address matches a pattern given with the debug_peer_list parameter.

debug_peer_list (empty)

Optional list of nexthop destination, remote client or server name or network address patterns that, if matched, cause the verbose logging level to increase by the amount specified in $debug_peer_level.

error_notice_recipient (postmaster)

The recipient of postmaster notifications about mail delivery problems that are caused by policy, resource, software or protocol errors.

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.

notify_classes (resource, software)

The list of error classes that are reported to the postmaster.

## MISCELLANEOUS CONTROLS

```

```

best_mx_transport (empty)

Where the Postfix SMTP client should deliver mail when it detects a "mail loops back to myself" error condition.

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.

delay_logging_resolution_limit (2)

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

disable_dns_lookups (no)

Disable DNS lookups in the Postfix SMTP and LMTP clients.

inet_interfaces (all)

The network interface addresses that this mail system receives mail on.

inet_protocols (any)

The Internet protocols Postfix will attempt to use when making or accepting connections.

ipc_timeout (3600s)

The time limit for sending or receiving information over an internal communication channel.

lmtp_assume_final (no)

When a remote LMTP server announces no DSN support, assume that the server performs final delivery, and send "delivered" delivery status notifications instead of "relayed".

lmtp_tcp_port (24)

The default TCP port that the Postfix LMTP client connects to.

max_idle (100s)

The maximum amount of time that an idle Postfix daemon process waits for an incoming connection before terminating voluntarily.

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.

process_name (read-only)

The process name of a Postfix command or daemon process.

proxy_interfaces (empty)

The network interface addresses that this mail system receives mail on by way of a proxy or network address translation unit.

smtp_address_preference (any)

The address type ("ipv6", "ipv4" or "any") that the Postfix SMTP client will try first, when a destination has IPv6 and IPv4 addresses with equal MX preference.

smtp_bind_address (empty)

An optional numerical network address that the Postfix SMTP client should bind to when making an IPv4 connection.

smtp_bind_address6 (empty)

An optional numerical network address that the Postfix SMTP client should bind to when making an IPv6 connection.

smtp_helo_name ($myhostname)

The hostname to send in the SMTP HELO or EHLO command.

lmtp_lhlo_name ($myhostname)

The hostname to send in the LMTP LHLO command.

smtp_host_lookup (dns)

What mechanisms the Postfix SMTP client uses to look up a host's IP address.

smtp_randomize_addresses (yes)

Randomize the order of equal-preference MX host addresses.

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 with Postfix 2.2 and earlier:

fallback_relay (empty)

Optional list of relay hosts for SMTP destinations that can't be found or that are unreachable.

Available with Postfix 2.3 and later:

smtp_fallback_relay ($fallback_relay)

Optional list of relay hosts for SMTP destinations that can't be found or that are unreachable.

Available with Postfix 3.0 and later:

smtp_address_verify_target (rcpt)

In the context of email address verification, the SMTP protocol stage that determines whether an email address is deliverable.

Available with Postfix 3.1 and later:

lmtp_fallback_relay (empty)

Optional list of relay hosts for LMTP destinations that can't be found or that are unreachable.

Available with Postfix 3.2 and later:

smtp_tcp_port (smtp)

The default TCP port that the Postfix SMTP client connects to.

Available in Postfix 3.3 and later:

service_name (read-only)

The master.cf service name of a Postfix daemon process.

## SEE ALSO

```
generic(5), output address rewriting
header_checks(5), message header content inspection
body_checks(5), body parts content inspection
qmgr(8), queue manager
bounce(8), delivery status reports
scache(8), connection cache server
postconf(5), configuration parameters
master(5), generic daemon options
master(8), process manager
tlsmgr(8), TLS session and PRNG management
postlogd(8), Postfix logging
syslogd(8), system logging
```

## README FILES

```

```

Use "postconf readme_directory" or "postconf html_directory" to locate this information.

```
SASL_README, Postfix SASL howto
TLS_README, Postfix STARTTLS howto
```

## 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
Command pipelining in cooperation with:
Jon Ribbens
Oaktree Internet Solutions Ltd.,
Internet House,
Canal Basin,
Coventry,
CV1 4LY, United Kingdom.
SASL support originally by:
Till Franke
SuSE Rhein/Main AG
65760 Eschborn, Germany
TLS support originally by:
Lutz Jaenicke
BTU Cottbus
Allgemeine Elektrotechnik
Universitaetsplatz 3-4
D-03044 Cottbus, Germany
Revised TLS and SMTP connection cache support by:
Victor Duchovni
Morgan Stanley
```