G. Pape
qconfirm

qconfirm - benefits


Speed
No content scanning
Reliability
Bounce handling
Small code size

Speed

If qconfirm is configured for a mail address, it is invoked whenever qmail tries to deliver a message locally to this mail address. 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 SENDER.

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 qmail queue. The delivery will be tried again in a little while.


No content scanning

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.


Reliability

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.

Bounce handling

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

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.


Small code size

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 <pape@smarden.org>
$Id: benefits.html,v 1.3 2003/03/31 09:43:57 pape Exp $