QMQPD(8)
π QMQPD β the Postfix QMQP server, bestie edition π
okay so real quick before we dive in: this is the manual page for qmqpd, which lives in section 8 of the System Manager's Manual. It's the Postfix QMQP server and it's genuinely such a specific little guy. Let's get into it β¨
πΈ NAME πΈ
qmqpd β Postfix QMQP server
π SYNOPSIS π
qmqpd [generic Postfix daemon options]
π¦ DESCRIPTION π¦
So here's the vibe: the Postfix QMQP server receives one message per connection. That's it. One and done, no chatting.
Each message gets piped through the cleanup(8) daemon, and then it's placed into the incoming queue as one single queue file. Very "one message, one queue file, no notes."
This program expects to be run from the master(8) process manager. It is not a solo artist, it needs its manager. π
And the access policy? There's exactly one: only explicitly authorized client hosts are allowed to use the service. That's the whole policy. No secret menu.
π 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). That's where the receipts live.
π BUGS π
The QMQP protocol provides only one server reply per message delivery. It is therefore not possible to reject individual recipients. Sorry bestie, the protocol said no.
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. Not our problem, it's giving "you deal with it." π
β¨ 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, RFC 6532, and RFC 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 ofReceived: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 thedebug_peer_listparameter.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(seepostconf -doutput) β The default location of the Postfixmain.cfandmaster.cfconfiguration 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(seepostconf -doutput) β The location of the Postfix top-level queue directory.syslog_facility(mail) β The syslog facility of Postfix logging.syslog_name(seepostconf -doutput) β A prefix that is prepended to the process name in syslog records, so that, for example,smtpdbecomesprefix/smtpd.verp_delimiter_filter(-=+) β The characters Postfix accepts as VERP delimiter characters on the Postfixsendmail(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) β Themaster.cfservice name of a Postfix daemon process.
π SEE ALSO π
- https://cr.yp.to/proto/qmqp.html, QMQP protocol
cleanup(8), message canonicalizationmaster(8), process managerpostlogd(8), Postfix loggingsyslogd(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. A true OG, no cap.
π«Ά 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
and that's the whole page bestie!! π this came straight out of the System Manager's Manual, QMQPD(8) β go forth and run your QMQP server responsibly, mwah π
β¨π
π¦ where this page comes from
- alpine 3.22: postfix-doc 3.10.13-r0 Β· IPL-1.0 EPL-2.0
- alpine 3.23: postfix-doc 3.10.13-r0 Β· IPL-1.0 EPL-2.0
- alpine 3.24: postfix-doc 3.11.7-r0 Β· IPL-1.0 EPL-2.0
- arch rolling: postfix 3.11.7-1 Β· EPL-2.0 OR IPL-1.0 AND BSD-4-Clause-UC
- debian trixie: postfix 3.10.13-0+deb13u1
- fedora 43: postfix 2:3.10.14-1.fc43 Β· (IPL-1.0 OR EPL-2.0) AND GPL-2.0-or-later AND BSD-4-Clause-UC
- fedora 43: postfix 2:3.10.3-3.fc43 Β· (IPL-1.0 OR EPL-2.0) AND GPL-2.0-or-later AND BSD-4-Clause-UC
- fedora 44: postfix 2:3.10.14-1.fc44 Β· (IPL-1.0 OR EPL-2.0) AND GPL-2.0-or-later AND BSD-4-Clause-UC
- fedora 44: postfix 2:3.10.7-2.fc44 Β· (IPL-1.0 OR EPL-2.0) AND GPL-2.0-or-later AND BSD-4-Clause-UC
- nixos 26.05: postfix 3.11.7
- nixpkgs unstable: postfix 3.11.7
- opensuse-leap 16.0: postfix 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix-bdb 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix-bdb 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix-bdb 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- opensuse-leap 16.0: postfix-bdb 3.10.2-160000.3.1 Β· EPL-2.0 OR IPL-1.0
- ubuntu questing: postfix 3.10.2-1ubuntu2
- ubuntu questing: postfix 3.10.2-1ubuntu2.1
- ubuntu resolute: postfix 3.10.6-4ubuntu2
- ubuntu resolute: postfix 3.10.6-4ubuntu2.1
- ubuntu resolute: postfix 3.10.6-4ubuntu2.2
- ubuntu stonking: postfix 3.11.7-1ubuntu2
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms