Regular expression matching power, now avaliable in a MTA!

While the native qmail ‘badmailfrom’ provides some ability to block spam it is fairly restricted as the match must be exact on either the full string or the domain. This means that it’s very difficult to block the 1234567@aol.com type addresses that some spammers are employing as you potentially require a large number of entries in ‘badmailfrom’.

Likes its predecesor the wildmat patch (which came from the INN product), qregex provides a higher level of control for evelope matching in the qmail-smtpd MTA. Wildmat used simple pattern matching, which while effective just wasn’t a true regular expression. qregex on the other hand implements the POSIX regex functions (found on most modern unices) to give the SMTP admin full control over the envelopes allowed to send mail through his/her mail servers.

With REs (Regular Expresions) it becomes quite easy to filter out email addresses that contain invalid characters or simply aren’t a real address. It also allows you to filter out these characters which are used to “source route” mail between mailservers, a technique spammers use. Below is a simple and short “badmailto” file from the qmail control files which stops all “source routing” formats that the abuse.net tests try.

# must not contain invalid characters, brakets or multiple @'s

Jan 29, 2002 release – qregex.patch-20020129.gz
Update/Bug fix
Further fixes the <sys/types.h> problem and updates the logic for the negate function.
All negate patterns should work properly now.

To install:
Download the .gz file, place it in your qmail source directory.
Run gzip -d qregex.patch-20011228.gz, then patch <qregex.patch-20011228 (or gpatch on solaris)
Read the file README.qregex

Jan 16, 2002 release – qregex.patch-20020116.gz
Bug fix
Fixes problem of needing to include <sys/types.h> on some systems.

Dec 28, 2001 release – qregex.patch-20011228.gz
v2 Rewrite
No longer uses stdio.h/stdlib.h/syslog.h, fits into qmail much better.


ezmlm-php is a collection of PHP files to give www access to an ezmlm mailing list archive. It allows for complete customization using headers and footers so that it can fit into an existing site layout or it will work without any modification and display the mailing list in a very vanilla layout.

It provides a general list overview (the index page), thread listing by month, message listing by author and thread summary by month. As well it caches information so if you have a high volume list the thread indexes will only be generated if they have changed.

The whole system is modular (each function of the software is provided by a separate file) so add new features is quite easy.


The code has been rewritten from the ground up, and all external dependancies have been removed. It will now work with a stock PHP install. RFC2045 Mail parsing functions have been implemented internally in pure PHP. A new approach to the caching system has sped up preformance quite a bit and the code has moved to an object-oriented model to allow for better code reusability.

Initial release.


Safetynet is a script written in perl intended to monitor and restart system processes without have to learn and write large & complex init scripts. Generally for somethings an init script is not nessesary but you still wish to make sure that the process is continually running, safetynet does just that.
When a service is found to be ‘dead’ safetynet will attempt to restart it using the commandline you specify, regardless of if it was restarted or not safetynet will send an email to an address you specify with the details. No more wondering if something has crashed or if it is still running while your not around your machine and no more fussing with large init scripts, just edit one easy to understand config file and make one entry to your Crontab and things will continue to run smoothly.Requires
Perl (At least 5.000)

Version 1.15
Added a admin down function by touching a file in a state directory.

Version 1.10
Updated the config file format. It is no longer backwards compatible.
Job define’s may now span several lines.

Scroll To Top