Google

G. Pape
qconfirm

Name

qconfirm-control - change qconfirm configuration through email

Synopsis

in .qmail-ext-default:

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

Description

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.

Processing

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 timestamp 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, 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.

Commands

If the command is one of list, check, accept, drop, bounce, 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 remembered addresses.

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.

Options

-v
verbose. Be more verbose when processing control messages.
-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.

Environment

QCONTROL_OWNER
The environment variable QCONTROL_OWNER must contain a email address of the owner of the corresponding qconfirm directory. If this environment variable is not set, qconfirm-control refuses to run.
QCONTROL_QUOTE
The environment variable QCONTROL_QUOTE overwrites the default quoting prefix in control messages (> ).
QCONFIRM_MAILNAME
The environment variable QCONFIRM_MAILNAME overrides the default mailname in the from header of confirmation requests and acknowledgements (qconfirm).
QCONFIRM_PREPEND
This environment variable must be set if the mail address you run qconfirm 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.
QCONFIRM_DIR
The environment variable QCONFIRM_DIR overrides the default location of the user's qconfirm directory (.qconfirm/).

Files

~/.qconfirm/pending/
~/.qconfirm/ok/
~/.qconfirm/return/
~/.qconfirm/bad/
~/.qconfirm/control/

See Also

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

http://smarden.org/qconfirm/

Author

Gerrit Pape <pape@smarden.org>


Table of Contents