G. Pape


qconfirm-control - change qconfirm configuration through email


in .qmail-ext-default:

|qconfirm-control [-v] [-d dir] [-t sec]


qconfirm-control is an email interface to the qconfirm(1) program. It runs as a qmail-command(8) from a .qmail-ext-default file.

Whenever an email is handled by this .qmail-ext-default file, qconfirm-control checks the default part of the address extension if it is empty, one of pending, ok, return, or bad, or an unique, 32 characters long, key. If not, the email is bounced.

If default is not a key, qconfirm-control treats the message as a request message, creates an unique key, runs ’qconfirm list default | sort -r’ and mails the output to QCONTROL_OWNER. The from header of the message is set to an address that is handled through the same .qmail-ext-default file with the newly created key as default extension.

If default is 32 characters long key, qconfirm-control checks if this key is valid, and if so, treats the message as a control message and processes it for commands (see below). If not, the message is bounced.


qconfirm-control processes each line of the body of a control message for commands as follows:

If the line is empty, it is ignored.

If the line starts with QCONTROL_QUOTE (default: ‘‘> ’’), qconfirm-control checks if the quoted line is of the format of the output of ’qconfirm list’, and if so, remembers the address after the time-stamp to add it to the next command found in the body. If the format doesn’t match, the line is ignored.

All other lines are interpreted as commands. If the line doesn’t start with one of the words list, check, accept, drop, bounce, sneak, pending, remove, bad, or stop, or thanks, qconfirm-control prints a warning and ignores the line.

qconfirm-control precedes each line it processes with QCONTROL_QUOTE (‘‘> ’’), prints it, and then prints the output from processing the line. The output of qconfirm-control is mailed to QCONFIRM_OWNER.


If the command is one of list, check, accept, drop, bounce, sneak, pending, remove, or bad, qconfirm-control runs ’qconfirm command’ with the remembered addresses from quoted lines and all words following the command in the precessed line as arguments, prints the output, and forgets the addresses in memory.

If the command is stop, qconfirm-control stops processing the control message at the current line.

If the command is thanks, qconfirm-control stops processing the control message at the current line, and invalidates the used key.


verbose. Be more verbose when processing control messages.
-d dir
Override the default qconfirm directory (‘‘~/.qconfirm’’) and the environment variable $QCONFIRM_DIR with dir.
-t sec
timeout. A request message to qconfirm-control is deferred temporarily as long as the corresponding unique key is valid. The unique key at the latest becomes invalid when qmail tries to deliver the request message and the message has been in the queue for at least sec seconds. Default is 300.


qconfirm-control reads its configuration from files in the subdirectory conf/ of the qconfirm directory (normally ‘‘~/.qconfirm/conf/’’). Only the first line of a configuration file is considered.
The configuration file QCONTROL_OWNER must contain an email address of the owner of the corresponding qconfirm directory. If this configuration file is not set, qconfirm-control refuses to run.
The configuration file QCONTROL_QUOTE overrides the default quoting prefix in control messages (‘‘> ’’).
The configuration file QCONFIRM_MAILNAME overrides the default mailname in the from header of control messages (‘‘qconfirm’’).
This configuration file must be set if the mail address qconfirm is configured for is controlled through qmail’s virtualdomains. It must be set to the prepend part of the corresponding entry in /var/qmail/control/virtualdomains plus a dash at the end.


The environment variable QCONFIRM_DIR overrides the default location of the user’s qconfirm directory (‘‘.qconfirm/’’).



See Also

qconfirm(1), qconfirm-check(1), qconfirm-conf(1), qconfirm-inject(1), qconfirm-notice(1), qconfirm-accept(1), qconfirm-return(1), qconfirm-cdb-check(1), qconfirm-cdb-update(1)



Gerrit Pape <pape@smarden.org>

Table of Contents