qconfirm - benefits
No content scanning
Small code size
If qconfirm is configured for a mail address, it is invoked
whenever qmail tries to deliver a message locally to this mail
qconfirm is optimized to use as less resources as possible, and to
exit as soon as possible.
qconfirm does not look at the contents of the message.
It just looks at the envelope, more precisely the envelope sender address,
which qmail has thankfully put into the environment variable
qconfirm does not read, write, copy, move, or deliver a message.
It just decides what to do with the message and
tells qmail-local on each delivery attempt.
If qconfirm defers a delivery because it has requested a delivery
confirmation, the message isn't read, or copied, or such, but stays in the
The delivery will be tried again in a little while.
qconfirm does not scan the contents of messages.
In fact it doesn't look at a message at all, it only takes information from
the envelope and tells qmail-local to deliver, defer, bounce, or
drop the message on this delivery attempt.
Content scanning can consume a lot of resources, and normally needs some
validation system, which eventually produces more or less false positives.
Also such validation systems normally need to be maintained and should
be updated regularly.
qconfirm does not depend on such a validation system.
qconfirm does not operate on a mail message. It doesn't copy, move,
or delete it.
Handling of the message is still completely done by qmail.
Deferred messages stay in the qmail queue.
qconfirm cannot cause a valid mail message to be lost that couldn't
possibly also get lost without running qconfirm.
qmail is known for its good reliability.
Envelope sender mail addresses can easily be forged.
This is a known problem of the current internet mail infrastructure.
Sending delivery notifications (such as bounces) to the envelope sender
address eventually fails and causes a doublebounce to be sent to
qconfirm can be configured to process bounces of delivery
notifications it sends, and so reduces the amount of doublebounces delivered
to the postmaster's mailbox.
See Handling bounce messages for details.
One of the qconfirm project's principles is to keep the code size
small. As of version 0.8.0 of qconfirm, the qconfirm-check.c
source contains only about 600 lines of code; the qconfirm-accept.c
source is about 100 lines of code.
This minimizes the possibility of bugs introduced by programmer's fault,
and makes it more easy for people to proofread the source code.
Gerrit Pape <firstname.lastname@example.org>
$Id: benefits.html,v 1.3 2003/03/31 09:43:57 pape Exp $