qmail-queue multi-filter front end
Bruce Guenter <bruceg@em.ca>
Version 2.1

This program allows the body and/or envelope of a message to be filtered
through a series of filters before being passed to the real qmail-queue
program, and injected into the qmail queue.

A mailing list has been set up to discuss this and other packages.
To subscribe, send an email to:
A mailing list archive is available at:

Development versions of qmail-qfilter are available via Subversion at:


- bglibs is required for system dependancies.

- This program is designed to take advantage of my QMAILQUEUE patch,
  which causes programs that would execute qmail-queue (such as
  qmail-smtpd etc.) to execute an alternative program.

How to install:

- Check the definitions at the top of qmail-qfilter.c, especially the
  value of TMPDIR.  This should be set to a temporary directory that
  only the executor of qmail-qfilter has write access to.
- Check the conf-* files for appropriate values for your compiler and
  linker, and installation paths.
- Run "make"
- As root, run "make install"

How to use, with the QMAILQUEUE patch applied to qmail:

- Create a script containing an invocation of qmail-qfilter.  For
  example, a script that uses qmail-inject as a front end to qmail-queue
  would contain:
	exec /path/to/qmail-qfilter /var/qmail/bin/qmail-inject -n
- Set the environment variable QMAILQUEUE to the location of this
  script.  For example, in a SMTP rules files, put:
  and rebuild the SMTP CDB file.
- You're all set!  In our example, all messages sent from the IP A.B.C.D
  will have their content filtered through qmail-inject, which will add
  missing "From:", "Date:", and "Message-Id:" headers.

How to use, without the QMAILQUEUE patch:
- Change the definition of QMAIL_QUEUE in qmail-qfilter.c to a different
  value, either by editing the source file or by modifying the DEFINES
  line in the Makefile to read:
- Compile qmail-qfilter.
- Rename qmail-queue to the new filename specified above.
- Create a script to replace qmail-queue that contains an invocation of
  qmail-qfilter, as described in the previous example.
- You're all set!  All mail entering the queue will be filtered by your

Notes on writing a filter program:
- If you want to block an email, exit from the filter with code 31.
  This will cause qmail-qfilter to exit with the same error code, and
  qmail-smtpd (for example) to send an error code to the client.
- If you want to silently drop an email, exit with code 99.
- The filter script that executes qmail-queue MUST NOT be setuid, and
  MUST BE readable.  Only the real qmail-queue binary needs to be

See the scripts in the "samples" directory for example scripts.

This program is Copyright(C) 2001,2004-2005 Bruce Guenter, and may be
copied according to the GNU GENERAL PUBLIC LICENSE (GPL) Version 2 or a
later version.  A copy of this license is included with this package.
This package comes with no warranty of any kind.

Index of qmail-qfilter

NameModification TimeSize

Parent Directory2011-09-21 20:22 -
ANNOUNCEMENT2005-08-12 17:41 4k
ChangeLog2005-08-12 17:41 23k
NEWS2005-08-12 17:41 3k
TODO2005-08-12 17:41 92
archive2011-09-20 21:20 -
fc12011-09-20 21:20 -
fc22011-09-20 21:20 -
qmail-qfilter-2.1-1.src.rpm2005-08-12 17:41 24k
qmail-qfilter-2.1.tar.gz2005-08-12 17:40 22k
qmail-qfilter-2.1.tar.gz.sig2005-08-12 17:40 189
rh62011-09-20 21:20 -
rh72011-09-20 21:20 -
samples2011-09-20 21:20 -

RPM File: qmail-qfilter-2.1-1.src.rpm

Name        : qmail-qfilter                Relocations: (not relocateable)
Version     : 2.1                               Vendor: (none)
Release     : 1                             Build Date: Fri 12 Aug 2005 05:41:01 PM CST
Group       : Utilities/System              Source RPM: (none)
Size        : 23108                            License: GPL
Packager    : Bruce Guenter <bruceg@em.ca>
URL         : http://untroubled.org/qmail-qfilter/
Summary     : qmail-queue filter front end
Description :
This program allows the body of a message to be filtered through a
series of filters before being passed to the real qmail-queue program,
and injected into the qmail queue.

Requires    :
bglibs >= 1.017
rpmlib(CompressedFileNames) <= 3.0.4-1

Valid XHTML 1.0!