MODIFIED QMAIL-SMTPD PROGRAM
This 'patch' to qmail-smtpd (a pre-patched source is also included in the tar archive file) provides the following additional functionality when receiving emails from remote hosts (that are not defined as 'relayclients):-

1) rejection of 'percenthack' addresses (this is simply a re-implementation of Russell Nelson's percenthack patch; duly acknowledged !) 2) validation against a 'master list' of acceptable recipient email addresses 3) optional aliasing of recipient addresses to alternative addresses, which may be inside of outside the receiving domain 4) optional 'forced connection close' or 'tarpitting' when specific recipient addresses are received 5) flexible validation scheme - validation is performed over a UDP socket to an internal/local 'server' process which does the necessary validation. Thus, any user-provided program written in any language, can do the validating providing that it conforms to a simple message protocol.

The modified qmail-smtpd program requires a 'server' program to function, which must be permanently 'listening' on UDP port 10001 (or other port as required). Specimen and usable sever programs, written in C, are also provided - or write your own in Cobol, SQL, Perl, Basic or whatever !! The provided tar archive contains the following:
README - this file
USERD - specimen input-file for 'uservd'
USERS - specimen input-file for 'userver'
patch - patch file for qmail-smtpd.c
qmail-smtpd.c - modified qmail-smtpd.c file
udpclient.c - demo client program to test server
udpquetst.c - program to test queueing of udp messages
udptorture.c - program to torture-test the server
uservd.c - server program - see compile notes
uservdd.c - server program as above but with 6-sec response delay
to allow testing of qmail-smtpd udp retry
userver.c - simple server program - see compile notes
Full details of compilation and usage are contained in the README file. The gzipped tar archive 'qmuser-1.1.tar.gz' is approximately 26kbytes in size. To download click here