Qmail 1.03 Patch

Hello, first of all this patch needs to be updated so that SSLv3 is switched off. I did this by adding the following line of code in qmail-smtpd.c and qmail-remote.c.

qmail: Second most popular MTA on the Internet

Qmail is a mail transfer agent MTA that runs on Unix. It was written, starting December 1995, by Daniel J. Bernstein as a more secure replacement for the popular.

Qmail is discussed on the qmail mailing list. New versions are announced on the qmailannounce mailing list. The latest published qmail package is qmail-1.03.tar.gz.

  • Russell Nelson Do you want to mirror qmail.org. Curious about the red bar or how the mirror manager works. Last modified: Thu Aug 20 :27 EDT 2015.
  • Qmail francophone. Please note that this site is a reference for qmail users. It s not designed to be easy to use -- it s designed to be comprehensive.

Please note that this site is a reference for qmail users. It s

not designed to be easy to use -- it s designed to be comprehensive.

There are things in here which have sharp edges. If you re looking

for a tutorial site, visit Dave Sill s excellent Life With Qmail site.

qmail is a modern SMTP server which makes

by Dan Bernstein, who also has

is a secure package. You can download

netqmail 1.06 Redhat RPMs, and Debian. debs, HP-UX, Gentoo, and OpenBSD ports and redistribute qmail for

picture of how qmail is organized. You should read Life with qmail.

list and an announcements list

for qmail users, maintained by Dan Bernstein using qmail, of

course. There s also an archive.

It s also archived at The Aims Group, at Gossamer

Threads, and in Mailbox-format

archives. Charles Cazabon has written some guidelines for posting

to the list. There is also an FAQ, providing answers to frequently-asked

Dan s updated FAQ is also available in other file

A number of large Internet sites are using qmail: USA.net s

outgoing email, Address.com, Rediffmail.com, Colonize.com, Yahoo.

mail, Network Solutions, Verio, MessageLabs searching 100M

emails/week for malware, listserv.acsu.buffalo.edu a big listserv

hub, using qmail since 1996, Ohio State biggest US University,

Yahoo. Groups, Listbot, USWest.net Western US ISP, Telenordia,

gmx.de German ISP, NetZero free ISP, Critical Path email

outsourcing service w/ 15M mailboxes, PayPal/Confinity,

Hypermart.net, Casema, Pair Networks, Topica, MyNet.com.tr,

FSmail.net, Mycom.com, and vuurwerk.nl.

Henning Brauer, Peter Samuel, and Russell Nelson have put together a netqmail-1.06 distribution of qmail. It is

comprised of qmail-1.03 plus the recommended

patches and some documentation.

Commercial support is available for qmail.

Support is available on-site, by phone, or over the Internet.

Craftsperson, offers assessment, installation, support, training,

and documentation for qmail and related software, specializing in

low-maintenance, rock-solid anti-spam, anti-virus solutions for small-

and medium-size organizations.

customer-focused IT services company offering computer system, network, and security consulting and

systems integration. Based in Boston, MA, Saffron Solutions provides

open source software support to customers in the US and Canada.

in Hamburg, Germany provides support, installation and administration

services for qmail and open-source software in Germany and

Richards is a qmail solutions specialist: Straightforward support,

consultancy, maintenance and troubleshooting services for qmail and

and installation of new qmail-based systems - any size, any location.

offers high-quality services and support contracts at the lowest prices. We

offer support for Qmail, Webmail, Courier-Imap, djbdns, etc and a wide

variety of open-source software such as Apache, ProFTPD, Linux, FreeBSD,

source qmail addons, provides expert qmail support and installation

through his firm DRH Internet.

Call toll free at 866-374-4678; internationally 410-461-5316.

qmail support world-wide: remote access or at your location. Call toll

free in the U.S. at 866.528.3530, Internationally at 815.776.9465 or

via Voip at sip:support inter7.com

support for qmail in Canada, the USA and elsewhere over the Internet.

Qmail, Webmail AntiVirus, AntiSpam, and djbdns support. We also offer

high-availability, clustering, redundancy, load balancing layer 4

switching, round-robin dns and failover services for medium/large

ISP s. We also support migration from Windows/Unix platforms to any

Unix platform FreeBSD, OpenBSD, Linux, Solaris, others Call

range of qmail services, from consulting to shared qmail servers and dedicated

qmail servers. In addition to qmail support, BlackMesh provides a full range

of consulting and hosting--from shared to dedicated--services. 888.473.0854

Kong offers qmail based corporate email solutions for the Asian

region. Solutions include corporate email solutions,

anti-spam/anti-virus, high-volume servers, consultancy and system

Ross Cooney from Rozmic provide support for qmail to

European based organisations and ISP s. Rozmic also provide a managed

spam filtration service called EmailCloud which is built upon

Management offers consulting, installaton and adminstrative

services for qmail, djbdns and other software including help with

general server tasks to customers located in Germany and nearby

LinuxIS Consulting provides consulting,

installation, and support services for qmail, djbdns, and most other

DJB-ware and Open Source software. Accepts Visa, M/C, American Express and

provides contractual and by-the-hour support for qmail and other MTAs.

We have a great deal of expertise in qmail on Linux, FreeBSD, and

a href title Consulting, installation and

support for qmail - Excello Excello provides support for wide

range of qmail applications for SMB Enterprise customers in the

Germany and Czech republic. They also run excellent high performance

antispam and antivirus solution on qmail platform known as a href title Hosted antispam solution with

high volume mail server support for ISP s and Enterprise throughout

the world. They have published free qmail support tools. Also

specializing in Anti-Spam solutions, Integration, High Performance

Tuning. Located in Canada, 24/7 support contracts also available.

Consulting Group - Los Angeles based Qmail installation and

support. Support for spam filtering, large deployments, and 24/7

support. Support all unix platforms. Call toll free 888 595-9775.

User-Contributed Documentation

Documentation contributed by users

qmail manual pages converted to HTML as a

Michael Samuel collected some documentation for qmail. It is no

longer accessible and is not being maintained. Arjen van Drie has a mirror.

Paul Gregg has written instructions on how to configure qmail to

handle many mail users multiple email addresses with separate POP3

à qmail, an introduction to qmail for french speaking users.

Chris Johnson wrote something called The qmail newbie s

guide to relaying, which is supposed to answer most of the

relaying questions that come across the qmail list.

Adam D. McKenna has written a qmail HOWTO.

Dave Sill has written Life with qmail.

Erwin Hoffmann was supposed to give a German-language QMAIL

presentation at a congress of the German Unix User Group GUUG

However, the whole congress was canceled thus

the presentation is more or less virtual.

Dave Kitabjian has some diagnostic suggestions for various qmail

Philip Jacob wrote up some instructions on

using checkpoppasswd to create virtual users on virtual hosts,

accessing their mail via pop3.

Davide Giunchi has written an Italian qmail

HOWTO, this Italian language document explains how to install,

configure and run qmail. This isn t a translation of the English

qmail howto but is written from scratch.

qmail-howto. Steven Fettig has translated Chapters 1-4 into

Patrick contributes an xinetd configuration for qmail-pop3d.

Qmail-VmailMgr-Courier-SquirrelMail

installation guide, written by Konstantin Riabitsev.

Martin Östlund has written a Swedish

Rene Schleicher has written a qmail/vpopmail-Installation

Looking for information on how to

disclaimer to your outgoing email.

Rocchetti have written a HOWTO in Italian

describing a qmail installation on FreeBSD with POP3, IMAP, Mailing

list, Antivirus, Antispam support and webmail.

Michel Morelli is running an Italian-language

Paul Niewiadomski has translated

into Polish. Actually, he s Paweł Niewiadomski, but you need

an 8859-2 character set to properly render his name. I can t wait for

UTF-8 to be supported everywhere.

Marco Tizzoni has translated Life With Qmail

Mário Gamito has some Portuguese

Asfihani has written Installing

in Indonesian language. He also covers omail admin, courier-imap

Ciprian has three benchmark articles

comparing sendmail, qmail, and PostFix.

Andrew St. Jean describes his qmail

configuration and using qmail s null client, Courier IMAP, and

courier-imap under daemontools.

Frank Niedermann has written a

Jeffrey Clement wrote up a Debian HOWTO on

setting up qmail, Vmailmgr, CourierIMAP, SpamAssassin, and ezmlm.

Sylvestre Ledru wrote some bits on

installation instructions for qmail on Red Hat 9.

Authentication as part of my canceled Qmail Book which is

available in english language. Readers will find an updated version

of Krysztof Dabrowski s SMTP Auth patch which should cleanly interface

instructions for using qmail as a

Sumanth NS has a qmail UUCP how-to.

toaster. No, not to make crispy bread, but instead to put

together qmail, patches, and ancillary software into one installation.

Lukas Feiler has instructions for

with TLS and SMTP auth, Courier-IMAP/POP3, MySQL, Clam AV,

SpamAssassin - all with virtual domain support.

Mark Steele wrote up some notes

a Qmail front-end for M Exchange server

written an English/Italian HOWTO, which explains how to put together the latest versions

of netqmail, vpopmail, dovecot, roundcube webmail, spamassassin,

clamav, simscan and some and related software.

Author s Enhancement Software for qmail

Enhancements and additions to qmail by its author, Dan Bernstein.

package delivers mail from a Maildir to an SMTP server.

package makes ordinary Unix programs into TCP/IP servers and/or

clients. In particular its tcpserver program should be used with

qmail instead of inetd. This package now includes Dan s rblsmtpd package for blocking spam using the RBL.

Gerrit Pape has written man pages for ucspi-tcp-0.88,

to complement Dan s online HTML documentation.

Interestingly, William Baxter announced ucspi-ipc

and Bruce Guenter announced ucspi-unix within two days

of each other. Same idea, different implementations.

Bruce Guenter also has written ucspi-proxy. It passes

data back and forth between two connections set up by a UCSPI server

William Baxter wrote ucspi-ssl

which uses OpenSSL to encrypt connections.

has written an implementation of

UCSPI-TLS for qmail, which adds STARTTLS RFC 2487 support to

qmail-smtpd and STLS RFC 2595 support to qmail-pop3d while isolating

the encryption in a low-privilege process for security. You can get

patches for qmail, sslserver, and mailfront, along with a detailed

monitors, controls, and logs the execution and output of long-running

programs, often called daemons.

Tetsu Ushijima wrote qmail-conf,

which creates an appropriate set of files to use daemontools to start

analyzes qmail log files in various ways. Russ Allbery has written

which converts the tai64n that daemontools-0.63 produces into the

fractional seconds that qmailanalog expects. Peter Samuel has

implemented the same idea as a patch

to daemontools using Dan s coding style Jay Soffian also wrote

one substantially similar to Peter s. Finally hopefully John Levine

went ahead and fixed qmailanalog to accept

Georg Lehner has made qmailanalog

better integrated with multilog.

emulates sendmail s. forward file processing.

supports forwarding tables under qmail.

Mirko Zeibig has an RPM with fastforward

with a. qmail-default and a standard /etc/aliases-file in it.

package authenticates users using a generic interface. It is required

by qmail s included POP3 server.

Dan has a checklist for users converting from

Dan has written a reference manual for SMTP.

You can t find a more secure DNS server than djbdns. If you thought the DNS was hard

to understand, you re wrong. It s not the DNS that s difficult --

If you just want to publish information via the web or ftp and you

don t want to worry about security holes, consider using publicfile.

ezmlm-showctl prints out the ezmlm

configuration in a readable manner.

User-Contributed Software for Qmail

General software contributed by users and supporters of qmail.

Harald Hanche-Olsen has written some code to do dot-locking. Dot-locking is slightly unreliable, so

Dan doesn t support it in qmail.

Alves hacked on maildir.module-970707 until it worked mostly with

Mattias Larsson wrote a preliminary patch to IMAP4rev1

which lets it work with Maildirs. David Harris has improved that patch

to make a production quality UW-imap server with Maildir support.

And in his turn, Herbie has updated the Maildir patch for the latest UW IMAP server.

David Summers has a qmail-imap Linux RPM.

This is a version of the IMAP/POP server that works with QMAIL, using

Mattias s patches. The three differences are:

Mail is delivered and picked up from user/Mailbox

Mail can be delivered and picked up from user/Maildir/ see README.maildir

CRAM-MD5 authentication has been added to the IMAP server.

Sam Varshavchik wrote a Maildir-only IMAP server

Ali Lomonaco has a patch for finger so it knows to look in HOME

for a Mailbox. It was written for the finger from FreeBSD 2.2.2,

which is probably the standard BSD finger.

Giles Lean didn t like the idea of patching majordomo, so

following a suggestion from J.T. Conklin that he found in the list

archives he wrote a majordomo-inject

script and some documentation on how to use it. Needs Perl 5.004.

J. Mehl has thrown together a bourne shell script to automagically

necessary aliases for a majordomo list with digests in a Qmail

environment that uses Giles majordomo-inject.

UIUC s ph to redirect mail on her mail hub. She wrote a note on how

Russell Nelson s checkhomeownership script will report on

users who don t own their home directories or Maildirs. This is

important to run before starting up qmail, because sendmail doesn t

care a whit whether the user owns their home directory, but home

directory ownership is how qmail decides if the user exists or not.

If you have a mail hub, and you ve botched the home directory

ownership, the users will never be logging into it, so they won t

notice. And you won t notice either, until they run screaming to you

that they haven t gotten the important mail they wanted, and their

correspondent noted that the mail bounced.

scripts that work with maildir2smtp. Now uses APOP-style

Russell Nelson s newbox script to create new

maildrops for users who don t have login accounts on their mail server.

Chris Garrigues wrote a program to pretty-print

T. Wightman has written a delayed-mail

for people receiving. addresses via UUCP. It parses. addresses,

applies a number of simple pattern matching rules to convert them to

FQDN addresses and injects them into qmail.

to eliminate duplicate messages. It has

two modes of operation -- strict and loose. Strict only eliminates

perfect duplicates, whose only difference is in the Received: lines.

Loose eliminates duplicates that have identical From: Date:,

Peter Samuel has expanded on Russell s program and written a

duplicate eliminator that uses dbm hash file s instead of a text

file. It also has improved exception handling and provisions for sites

Allbery uses Majordomo with qmail. He has a FAQ on

David Harris has a system to only allow hosts who have authenticated via the

POP3 server to relay mail using qmail. This does not require

patching the POP or SMTP servers, but is implemented by two programs

which cleanly interface into the system, and can work with most any

Novotny wrote an alternative to Russell Nelson s Open-SMTP patch

for checkpassword. His code is a PAM

module which calls external program to log TCPREMOTEIP. It

requires a PAM-enabled checkpassword.

Mark Willcox wrote postpop, which

is a simpler SMTP after POP solution.

Beltrame has a tool to view the qmail

queue with colored display, view messages in it and delete

messages. It s very simple and written in Perl.

Jeremy Kister wrote a qmail-queue

Burdis has written several qmail programs,

including dotqmail2alias, alias2dot, deliver, and compactor/exploder

Eric Huss has released queue-fix

1.4. It repairs or generates a qmail queue structure. You can

use this to help move your queue location, or if you regenerate the

file system and the inode numbering changes. It will also fix

permissions and ownerships of the files. Eric reports that Matthew

Harrell wrote a patch to queue-fix

which makes it work with Russ Nelson s big-todo patch. Patches upon patches.

Harald Hanche-Olsen has a shell/awk/gnu-find script which renames a queue so that it has the right

filenames corresponding to inodes.

Charles Cazabon wrote queue_repair.

queue-repair is a qmail queue diagnostic and repair tool, written in

Python, and licensed under the GPL.

Jason van Zyl has a patch to the cyrus imap server so that it authenticates out of a

cdb the same hash format that users/assign uses instead of

kerberos or /etc/passwd. And he has a perl script that allow you to

enter users into the system and it takes care of updating the

users/assign file, and the cdb file that cyrus is using to

Bruce Guenter wrote qlogtools, a set of tools

useful in analyzing or producing logs from qmail and other packages.

Monte Mitzelfelt has a program which sorts a qmail

log analyzer tool called IsoQlog.

Bruce Guenter wrote his own implementation of the mini-qmail idea,

has a queue for more reliablity. It supports SMTP and QMQP, so it s a

drop-in replacement for qmail-qmqpc.

Eric Hess needed longer timeouts

for qmqpc. The timeouts are hard coded in qmail-qmqpc. They

tend to be on the low side 10 seconds to connect, 60 seconds to

read/write. He uses some automated systems with qmqp and sometimes

the servers are overloaded and can t respond in that timeframe.

Jay Austad has his qmqpc rotating the server list by a random

amount. This distributes the load over multiple qmqp servers.

There are a number of web interfaces for reading mailboxes:

horde.org s IMP. Requires PHP and an IMAP/POP3 server.

Twig. No frames, no javascript.

is a simple Webmail solution for mail servers based on qmail and

optionally vmailmgr. This a GPL project, maintained by Olivier Müller. The mails are read

directly from Maildirs on the harddisk, which is much quicker than

using protocols like POP3 or IMAP. Other features includes multiple

language support currently English, French, German and Italian,

folders and addressbook support. oMail is programmed in

Perl. Developers and translators are welcome to subscribe to the devel mailing

system for perl qmail vpopmail mysql.

Webmail client for qmail supporting POP3/IMAP accounts. Streamlined

interface supporting Ajax and multiple Webmail templates and themes.

VisualOffice supports Maildir.

Several autoresponders are available:

Vyacheslav Ignatyuk wrote an alpha version of a qmail

manager module for webmin. It s a first alpha version,

Peter Green has some code to Archive and process log files

generated by qmail-send and qmail-smtpd.

William E. Baxter has released qtools, a

suite of utilities for use in. qmail files. The tools support

applying a filter to a message body, message head, or entire message;

conditional delivery of a message to a Maildir; and configuration of

Sam Varshavchik has a local delivery agent called Maildrop that has

a custom filtering language more readable than procmail s.

Russell Nelson has a program called no-alternative, which picks the text/plain

part out of a MIME multipart/alternative message, and forwards it to

Bodin have conspired to write some scripts and documentation to throw

Inter7 has their own MRTG configuration

Chris Dent wrote Qmail::Queue.pm.

Web-administration solution for mail servers based on Dan

Bernstein s qmail and Bruce Guenter s vmailmgr.

Dru Nelson has an incoming message

administrator s program to remove

queued mail that has a certain string in it.

LinuxMagic has written qmail-remove

to remove emails from the queue. If they match a string, they are

moved to a temporary directory.

Mail2DB -- Store incoming mail

in a PostgreSQL database. Mail2DB is suitable

for putting in a. qmail/.forward file and will archive e-mail to a SQL

database. Currently, there is only the storage component. This was

written because somone on a LUG list expressed interest in such a

system, but he only knew PHP which isn t an ideal language for

calling from a. qmail file ;-. Hopefully a user interface will be

Russ Nelson has a qmtpd tarball for people using

0.70 or later daemontools with qmail.

Just drop it into your /service directory, and five seconds later,

you re running qmtpd. Don t forget to set your lowest MX priority to

12801, or all your deliveries will occur using SMTP. This is a

companion to his qmail-remote patch.

application that allow your client to administer the pop accounts in

his domain, easily and with security, without the need to contact

Alex Kramarov has created qmail-print-queue to print

the qmail queue contents - it runs on all messages and displayes

the from:, to: and date: headers; can also dump the full header of the

message if ran with -h switch if mess822 is properly installed. It

is useful in conjunction with monitoring tools like qmail-mrtg and

Andrew Richards has written a set of tools for

managing multiple virtual domains using hashing to distribute maildirs called

checker, useful if you use the mutt MUA and procmail to filter

incoming mail to Maildirs, since there isn t a built in mechanism for

qmail-qsanity-0.52 checks your

queue data structures for internal consistency. If it finds any

problems, it prints a warning to stderr. Plans are to change it to

generate shell commands which will correct the problems.

checks your qmail configuration for common problems. Prints warning

Davide Giunchi wrote qmail-masq uerade.

It will masquerade the internal address with an external one when

sending email from local network users to the external internet users.

Todd A. Jacobs has a program to

Wolfgang Pichler wanted graphs

from logs, so he wrote qmailalizer.

Bruce Guenter wrote mailfront, a package

containing customizeable network front-ends for mail servers;

specifically SMTP and POP3. Supports SMTP auth and POP3 AUTH

Mark Delany wrote set_supplementary_groups, which

lets you gain group permissions for the groups you are in in

/etc/group. In particularly mailman requires this.

Anti-Spam/Valid User checking program, magic-smtpd, a

drop-in replacement for qmail-smtpd over to opensource. Features

checking for Valid Users, Spam conditions, and smtpd RCPT-TO rate

limiting, all at the smtpd level to reduce server loads before it hits

the queue. Supports stock qmail, qmail/vpopmail, and LinuxMagic

invoked just like qmail-pop3d so it fits in smoothely in a vanilla

qmail system. Works fine with vhkpwd or any checkpassword-compatible

program for the control of qmail.

Erwin Hoffmann wrote Newanalyse, helping the

sysadmin in processing multilog logfiles.

Erwin Hoffmann wrote QMVC - Qmail Mail and

Virus Control is an unidirectional Mail Filter and Virus Scanner

for Qmail. It runs from your. qmail file.

Ian Stewart wrote qmail-logfilter,

which discards the DATA phase of an smtp session.

N. Ersen Siseci wrote Zabit, a C-language qmail

qmail-queue replacement to filter mail traffic and more. It

supports body filtering, subject filtering, attachment filtering,

quarantine, white/black list, single line logging for qmail and many

Russ Nelson wrote qmail-dk, which is a qmail-queue

replacement that signs and verifies DomainKeys signatures. Building on Gentoo

Sorrawut Korsuwansiri wrote qmail-track,

which he uses to locate all the logfile records associated with a

particular pair of email addresses.

Inter7 has updated simscan, a qmail-queue

replacement to reject unwanted email. Simscan is a simple program

that enables qmail-smtpd to reject viruses, spam, and block

attachments during the SMTP conversation so the email never makes it

into your computers. It is completely open source and uses other open

source components. Very efficient and written in C.

Dovecot is an open source IMAP and

POP3 server for Linux/UNIX-like systems, written with security

It prints info about the messages in the qmail queue sorted per GID.

He uses it to quickly see if any user sends excessive amounts of

mail/spam and fills the queue.

Skaarup has written a package for

analyzing logfiles for a lot of

Folkert van Heusden wrote multitail, which

monitors multiple logfiles. MultiTail lets you view one or

multiple files like the original tail program. The difference is that

it creates multiple windows on your console with ncurses.

messages using domainkeys after verh has

modified the message, so he added code to qmail-remote to re sign the

which writes email directly into a user s Maildir.

from IMail Server to qmail/vpopmail.

User-Contributed Maildir Support

Maildir-specific software contributed by qmail users. Maildir is a

lock-free mailbox standard which is reliable over NFS.

Mosley has a program which loops on

maildir2mbox so that programs like Elm can continue to receive

mail without needing to exit and reenter. Relies on Ivan Kohler s mbox2maildir.

Kohler has a mbox2maildir program.

Gets its parameters fron the MAIL and MAILDIR environment variables.

script will create Maildirs for all users who receive mail and will

convert their /var/spool/mail mbox-format mailboxes into messages in a

Maildir. Stuart Bain has improved it so it will convert UW-IMAP mboxes into Courier-IMAP

above convert-and-create script to convert a

single user. Gets its parameters from the command line.

Valerio Granato has also done a convert-and-create variation.

Todd Underwood has written Yet Another Mailbox to Mailbox Converter.

The ultimate mbox2maildir has not yet been invented.

However, Robin Whittle has created another mbox2maildir.

This one can do entire directories of mboxes.

Matthew C. Mead has a from program that

prints a summary of mail in a maildir waiting to be read.

Allbery has his own maildir summary

program. Same idea as Matt s but a slightly different philosophy.

that has native support for Maildirs.

Mikko Hänninen has a patch to Mutt which converts GMT dates in the

Bloodhounds International wrote maildir patches for the c-client library now

distributed by Adam McKenna, which is used by Pine and IMAP2. Dean

Gaudet has a patch to it that lets you work with multiple inboxes.

Ragnar Kjørstad has adjusted the maildir patches for pine 4.00 to

And similarly Jozef Hitzinger and Adam

4.58, including Dean Gaudet s maildir-1billion fix

GPL ed MUA, called Mew and IM support

qmail s Maildir. Mew is interface for Emacs/XEmacs. IM is perl

scripts for process mail like MH.

Gregg has a script which runs from a. qmail file that checks a

Maildir for a quota clearly only effective on a userless mailhub.

The script is called mailquotacheck.

Jeff Hayward has a patch to qmail-local which arguably belongs

down below in the patches section except that Paul Gregg s quota check

was already here which treats quota

exceeded as a permanent error, bouncing the message back to the

There are various xbiff X mail notifiers solutions for maildirs:

comment at the top of the script explains why this one is better.

A text-only biff by David Gerber.

The Clarkson University Unix Team has an xbiff and from.

Tetsu Ushijima has a program called maildirdeliver,

which writes a new message into a Maildir. Most of the code is

essentially just stolen from qmail-local.c.

Len Budney wrote a little C program

which implements DJB s maildir algorithm to copy stdin to a file in a

maildir. When exit codes are checked, as by qmail-local or fetchmail

with -w option, it should be as reliable as qmail s own maildir

delivery which heavily influenced the safecat.

Jonathan Kamens has written a replacement for the Emacs movemail program, which understands how to read

mail from a qmail-style maildir.

procmail-3.15 includes support of the maildir format with no

patch. All you need to do is to add a slash to the mail folder names.

Michael Elkins has a tool to synchronize a maildir with a

support in its appendfile transport. Not exactly new news,

Gnus has had native maildir support

since version 5.8. Also see nnmaildir.

directories and moves email directly from

an LDIF file. It also creates the user s public_html directory

which can be used in conjunction with mod_ldap_userdir.

Nikola Vladov wrote a mbox2maildir in C.

Tim Deegan has an RFC1339 remote mail

check daemon that works with Maildir mailboxes.

Jorge Ventura wrote a qextra2mdir. It

takes the extra copy created by FAQ 8.2 and inserts it into a Maildir.

Antonio Casado Rodríguez created

EZ Mailing List Manager EZMLM is a mailing list manager which allows

users to create their own mailing lists with a single command.

B. Ringel have written an ezmlm

FAQ. In addition, Fred L. has also written in his copious free

manual for both list owners and users.

Lindberg has an add-on to ezmlm-0.53

called ezmlm-idx. It gives you headers, trailers, threaded digests,

multi-message get, thread retrieval in MIME multipart/digest with

headers filtered to make the digest rfc1153-like default. It also

has all aspects of message moderation, subscription moderation, and

remote administration of subscriber addresses.

latest author of code to ensure that an ezmlm

list splitter. It forwards subscribe/unsubscribe requests from a

main list to one of a set of sublists based on the target address

hash or domain name. This way, the list can be split into a number

of hosts for load splitting or geographic splitting without

inconveniencing the user who always deals with the main list.

Özgür Kesim has a ezmlm HOWTO for

subscribe/unsubscribe interface to ezmlm.

Michael Hirohama wrote Ezmlm-Thresh, which

allows EZMLM mailing list messages to be limited to a threshold per

interface to ezmlm called ezmlm-web, currently at

2.1. It has improvements over Glen Stewart s version.

Glen Stewart has improved on Guy Antony Halse s EZmlm-Web 1.02.

He s calling his version EZmlm-Web

v1.0.2gs1.2. The gs1.2 version suffix modifications are fairly

extensive and done by Glen Stewart. Some of the most notable changes in this release include:

list owner logon screen password

ListMaster access/control from filtered, configurable IP addresses

Only the ListMaster can create and delete lists

skeleton support for WebGlimpse indexing of selected list archives

spam filter option for list owner addresses

tooltip help for all list configuration settings

case-insensitive list and subscriber address sorting

list owner can change their owner address

configuration tour help for list owners

many other fixes and enhancements

Sergiusz Pawlowicz wrote ezmlm-cgi-py, a

more approachable i.e. Python, not djb-C version of the Freds

Living with Qmail - Tips Advice

Some good advice for new qmail users, contributed by qmail users.

Did you restart qmail. I find that to be a help for a lot of

qmail problems. :- John Mitchell

You should also check the permissions very carefully on all of

the necessary directories and files. John Mitchell

You must also put the virtual domain into

control/rcpthosts or the mailer will bounce the message

with a notice saying that the host wasn t in rcpthosts. John Mitchell

Of course, you must also be the MX for the virtual hosts. I had

a problem in my setup that was driving me nuts until I realized that

my DNS provider had missed an MX update request. John Mitchell

Check all lines in sendmail.cf beginning with M. Any that

contain P IPC or P TCP should also have

You might want to limit posting to mailing lists.

The right-hand-side of entries in

control/virtualdomains should begin with a username. If

you don t use a username, the mail will be handled by alias. But if

you forget, and create a user by that name, then the mail will

suddenly be handled by the user, which is probably not what you

intended to happen. Best to use, in this case, alias as

the username and avoid trouble. Russ Nelson

remember to add preline before

procmail or other filters when moving. forward to. qmail. Ira Abramov

utility, remember that preline expects to pipe the entire

mail message through the specified program. If the specified

program closes standard input before preline has finished, preline

will exit with a transient failure and you ll see the following

deferral: preline:_fatal:_unable_to_copy_input:_broken_pipe/

You ll see this problem if you try to use the sendmail version of

vacation. Use Peter s vacation program

Run qmail from an init.d script Larry Doolittle

You can usually create control/rcpthosts from

sed s/. // virtualdomains cat - locals sort

Sometimes you need to use a database to

forward mail. Create alias/.qmail-default like this:

echo Sorry, no mailbox here by that name 5.1.1 ;

That all goes on one line. Fill in the X part with a program

that looks up the user, and exits with zero and prints the destination

address, or else exits nonzero if no match is found. By the way, the

X program probably should ignore case. For NIS, you would replace the

X in the above command with: ypmatch LOCAL aliases.

Similarly, you could also use a simple linear search text file

named mapping containing lines in the form

if MAP grep -i LOCAL: mapping T echo MAP awk -F: print 2 ;

else echo Sorry, no mailbox here by that name 5.1.1 ;

Anything you print from a program run by a. qmail file ends up in

You can do a reasonable imitation of sendmail delivery, including

.forward and /var/spool/mail, with

exec qmail-start dot-forward. forward

preline -f /bin/mail -f SENDER -d USER splogger qmail

depending on your system s binmail interface. Of course, I recommend

throwing binmail away, but people who need to preserve /var/spool/mail

should still be able to use qmail.

If you want to have private. qmail files which only work on local

mail e.g. a fax gateway, you can put the following test at the

beginning of it all on one line :

if -n sed -n -e /invoked from network/p -e 2q ; then exit 100; else exit 0; fi

That is, peek at the headers, if the message came from the network, bounce

it, otherwise forward it along.

J. Bernstein has three suggestions for allowing your users to

relay when they re not at a known IP address which is the FAQ 5.4 solution :

Use a secret IP address and port number, and you ll have much

better security than user-chosen passwords.

Put a secret string into the HELO string sent by the client. This

will be visible to the fixup script, so you can reject messages with bad

passwords without changing qmail-smtpd---and it s still more widely

Oh, you want real security. Check that all messages are PGP-signed by local users. I wouldn t be

surprised if PGP plugins are available for more clients than XTND XMIT

Buddhdev wrote turnmail, modified by

Russell Nelson for publication here, which wraps around qmail-pop3d

and triggers a serialmail delivery to the connecting host whose user

just authenticated themselves. Or, a Unix system can use fetchmail,

Dan Bernstein suggested that one might give ordinary users access

to qmail-qread through ucspi. Steinar

Haug implemented that suggestion thusly with a client that looks

exec /local/etc/tcpclient -RHl0 -- 127.0.0.1 20025 sh -c exec cat

and he starts the server like this:

tcpserver -u126 -g120 -R 127.0.0.1 20025 /var/qmail/bin/qmail-qread

The default delivery instructions, which are invoked when a. qmail

file is nonexistent or empty, are found in the first parameter of

qmail-start. That s why the install instructions tell you to touch

.qmail-root. qmail-mailer-daemon and. qmail-postmaster.

Buddhdev recommends pullmail, which is a

Windows NT program that pulls mail from a POP3 server, and stuffs it

Delany modifies FAQ 2.3 so he can use the same. qmail file for multiple UUCP sites:

Here is our. qmail-uucpfqdn-default file all on one line

preline -df /usr/bin/uux - -r -gC -a SENDER

echo EXT cut -f2 -d-. rmail EXT3 HOST

And here is a sample virtualdomains entry:

some.domain:uucpfqdn-uuhostname

Dan Bernstein noted that qmail will skip dns queries for incoming

mail with tcpserver -Hl your.host.name; and you can skip

them for outgoing mail with control/smtproutes.

Harald Hanche-Olsen has a solution to the problem of mail that has

wrongly been queued for a remote host because, say, you didn t have a

host in your locals or virtualdomains :

echo tcn.net: 127.0.0.1 /var/qmail/control/smtproutes

Now send qmail-send an ALRM signal.

for UnixWare 2.1.x and 7.0.x, which is not currently supported by

By the way.. the patch above opens up the option of sending mail

to root if you want this then just copy the right files into your

qmail source directory if you don t go into conf-unusual.h and

comment out line 25 that says define ALLOW_ROOT_MAIL 1.

Probably a good idea to comment it out -russ.

Daniel J. Bernstein suggests that if you have buggy clients that

send bare LFs, and you want to treat their messages the same way

sendmail does, you can simply run his fixcrio program instead

of qmail-smtpd for your outgoing mail relay. fixcrio then takes

qmail-smtpd as argument. fixcrio is part of the ucspi-tcp package.

Nagy likes to watch logs in a virtual terminal /dev/tty8. He uses

tee accustamp tailocal /dev/tty8 accustamp cyclog

The extra accustamp seems to be needed to make it work with bash.

Frederik Vermeulen says: If you don t want a specific

undeliverable mail to sit in the queue any longer, you can make it

reach the queuelifetime by running touch -d 1 week ago

on its queue/info file. It will then be bounced after one

Russ Nelson has used qmail-local to deliver to a dynamic Mailbox

or Maildir name. He does it like this:

qmail-local USER HOME LOCAL nodeliver HOST SENDER /path/to/users/maildir/here/

Harald Hanche-Olsen warns people to beware when patching Solaris

machines, because at least one patch restores the

/etc/rc..d/ SK. .sendmail symlink. You might want to remove files

matching that name in your startup scripts.

Vern Hart doesn t like a pile of. qmail files in his home

directory. So he uses users/assign to put them into a subdirectory:

This puts. qmail in his home directory but everything

else is in. qmails/. This changes /.qmail-foo to

/.qmails/foo and really cleans up his home.

Jim Simmons points out that you can stop linuxconf from creating a

potential security hole by removing the /usr/sbin/sendmail line from

/usr/lib/linuxconf/redhat/perm. If you don t do this, linuxconf will

change /var/qmail/bin/sendmail to running suid.

Dag Wieers wants to see all messages that are delivered to his

domain but were bounced because the user or alias does not exist. Since

you cannot forward and pipe in the same dot-qmail he found the following

solution to be his most simple option. qmail-default:

forward dag mind.be /dev/null 2 1

echo Sorry, no mailbox here by that name. 5.1.1 ; exit 100

This way someone can simply check those mails regularly and forward them

to the right person manually which sometimes saves time when people are

you have two services running smtpd, one using recordio and the

other not. He says that it s a great diagnostic tool. Create

/service/qmail-smtpd as you would normally. Create

/service/qmail-smtpd-recordio as a copy with recordio inserted, and

logging to a separate space be sure to chmod this logdir tight

because recordio records complete emails. Create

/service/qmail-smtpd-recordio/down. The switchover is then simply:

svc -u /service/qmail-smtpd-recordio ; svc -d /var/service/qmail-smtpd

Han Boetes blocks sites with no

reverse dns. He uses the following tcp.smtp file. The only thing

I would do differently is to set RBLSMTPD instead of just denying the

Japheth Cleaver has a simple solution for stunnel. using a

multilog has filtering capabilities, see

place you can select what bits of the output to write. For example:

multilog t - - 5 /var/log/qmail/smtpd-err

will do the normal logging to /var/log/qmail/smtpd, and will

record 5xx errors sent by your server to the client in

Qmail-popup redirects stderr to

stdout, thus making it impossible to write a wrapper around

qmail-pop3d which writes to the logfile by writing to stderr. Being a

little cleverer with the shell, you can also redirect FD 7 onto stdout

/var/qmail/bin/qmail-pop3d-wrapper.sh /var/qmail/bin/qmail-pop3d Maildir 2 1 7 1

Once you ve done that, qmail-pop3d-wrapper.sh can log to FD 7, like this:

echo qmail-pop3d: user USER logged in from TCPREMOTEIP: TCPREMOTEPORT 7

Alex Greg likes to see the output

of svstat expressed in dhms instead of seconds.

one-line fix to the errno compilation problem. It works for most DJB

cat error.h sed -es/ extern int errno ;/ include / error.h

Or, djb suggests that you edit conf-cc to read:

cc -O2 -include /usr/include/errno.h

Russ Nelson suggests a method for

stopping qmail reliably. When you need to stop qmail to do

setlock /service/qmail/supervise/lock sh -c

Alternative Checkpassword Implementations

qmail-popup and qmail-pop3d are glued together by a program called

checkpassword. It s run by qmail-popup, reads the username and

password handed to the POP3 daemon, looks them up in /etc/passwd,

verifies them, switches to the username/home directory, and runs

pop3d. At least that s what the standard one does.

Some alternatives are listed below.

Delany has a clever way to test your checkpassword with a bit of

command line re-direction. For example, with username

printf s 0 s 0 s 0 fred bloggs Y123456 /bin/checkpassword id 3

will execute /bin/id if the password is right.

If you haven t a printf then enter the data into a file with your

favourite binary editor, such as emacs, and then it s simply:

perl -e printf s 0 s 0Y123456 0, fred, bloggs

Or use qmail-popup and use the user and pass commands:

/var/qmail/bin/qmail-popup /bin/checkpassword id

Jedi/Sector One has a checklocalpwd.c

that checks a configuration file in addition to the users mentioned in

Jos Backus has a mkpoppass/chkpoppass pair. It uses an

alternate username/password file and is written in perl.

Guenter has a virtual domain mail manager package called vmailmgr. It s designed to manage

multiple domains of mail addresses and mailboxes on a single host.

Co-operates with qmail for mail delivery and program control. Has

corresponding add/deluser and change-passwd commands, and CGI scripts.

Knows about shadow and MD5-encrypted passwords. Uses CDBs for the

virtual domain tables. Supports IMAP via an authentication module for

Russell Nelson s pop-subaddr patch allows multiple maildirs per POP3

user, all of them authenticated with the same password.

Alexey Mahotkin rewrote checkpassword-pam

requires a PAM-enabled checkpassword or any POP3/IMAP system that uses

Guenter has yet another SMTP relay control

package. It uses a setuid program called from checkpassword to avoid

patching checkpassword. Strictly speaking, it s not a patch, but it s

here so people can find it along with the others.

Johnson EI39-1 wrote a virtual domains package with the

following features. Inter7 is now maintaining the current version,

Dynamic delivery - no need to have dozens of. qmail files all over the place. Just a single. qmail-default handles all the deliveries

Shadow password support - something that seemed to be lacking in the other programs

Only takes up 1 entry in /etc/passwd - everything runs under a single UID/GID

Decent documentation - actually, some docs I ve come across for this are pretty good, but I had a bugger of a

time getting the things working probably cos I m using shadow d passwords on my own Linux box.

Delivers direct to a Maildir for use with qmail-pop3d

Ken Jones has a program for administration of virtual domains

using the vchkpw program. It handles pop acccounts, aliases, forwards,

autorepsonder and ezmlm mailing list.

Justin Hopper has a quota implementation for

Simitzis has XTND XMIT mods for

qmail-pop3d that also incorporate some patches found on this site.

André Oppermann has patches to do user lookup deliver and

retrieval via qmail-pop3 using LDAP. Cristiano Venturini has a site

Pedro Melo has a patch to checkpassword-0.81 which uses a CDB file.

version of checkpassword that authenticates users from a cdb

database. It includes perl scripts to maintain the user database file.

security lapse in checkpw, which gets its password from a file in

the user s home directory, and allows both POP

and APOP authentication. Magnus Bodin has a copy if that site happens to

Matthias Andree has a patch to Dan s checkpassword

that allows checkpasswd to use an arbitrary base

directory for finding Maildirs

Sweetland has added Postgres support to his checkpassword and

qmail-getpw replacements. He calls the package sql-xpw. These differ from

Takeshi s code because his is a patch to qmail and this code is not.

checkpassword which authenticates using an NT domain. It is derived from

Andrew Richards has a checkpassword

for Radius, written in C. It s based around Dan s

checkpassword, and uses the Radius client library from FreeBSD, as

well as MD5, since that s how Radius encodes its data.

Larry M. Smith has a vanilla checkpassword.pl.

Piotr Swebodzinski has a checkpassword for tru64 Unix.

for using checkpassword w/ Courier-IMAP.

that wraps around Courier-IMAP s authentication for use by

Andreas Aardal Hanssen has a way

checkpasswords and authenticate against one, and if that

fails, then the other. If none succeed, it returns failure.

checkpassword which authenticates via a pop3 connection.

While this may seem counter-productive, you can use it for smtp-auth

where the smtp server does not have direct access to the user database.

checkpassword that authentifies against a PHPNuke users database. This allows

administrators of these kind of portals to automatize the creation of

pop3 accounts in their system.

allows users to to check and change their passwords using Courier

authentication modules. It can optionally read authentication tokens

from stdin and send logging information to syslog or stderr.

authenticates using a Squid auth helper program.

against a CDB file and works for SMTP-AUTH as well as for Courier

Thomas Mangin s qmail-ldap-multi-auth

patch allows you to run a mix of qmail-ldap and vmailmgr domains on

manage accounts of QMail Ldap Server written in Python command line

Still need something more from qmail. The chances are good that you

can find it here, contributed by users and supporters of qmail.

Paul Fox has created a getpwnam patch for qmail

which causes it to use getpwname to get the uids of its usernames.

condredirect. It allows condredirect to handle the case where the

child has a permanent delivery error -- for example, when the program

condredirect is asked to run doesn t exist.

to date822fmt.c which causes it to emit dates in the local

Chuck Foster implemented code which Bill Nugent updated it to qmail

1.03 to bind the local address for smtp

client sessions to an address which is mapped using the remote address

as a key. This can be useful to bypass a firewall, or if you ve got

split routing, or if you have a better non-publicized route to the

program lets you create bulletins which get added to a user s

mailbox as they log in. Equivalent to an all-customers mailing list,

but takes up much less resources, and lets you withdraw bulletins.

RPM which automatically applies a number of patches found here and

which comes with some scripts.

patches, one to cause qmail-smtpd to log its disposition of mail,

and another to convince qmail-remote to use a fixed IP address other

than the one you get without binding to an address. Andy Repton has

ported the fixed IP address patch to

qmail 1.03. Damir Cifer has better instructions for his port.

Chuck Foster originally wrote a patch for tcpcontrol. That

functionality got subsumed into tcpserver. John Levine has updated it

deny services based on domain names instead of IP addresses.

distinguish between no PTR and wrong PTR DNS records.

deny service to hosts whose forward and reverse DNS do not agree.

Christopher K. Davis has a patch to accept oversize DNS

packets which works on both qmail s dns.c and tcpserver s dns.c.

If you don t want to patch qmail, you can ameliorate the problem

returns only the records you ask for, making for a smaller ANSWER

Guenter has a patch which causes qmail programs to get

their userids, not compiled in via auto_uids.c, but instead by

looking at files in /var/qmail/owners.

Guenter has RPMs of daemontools.

Bruce Guenter wrote supervise-scripts,

to help him start and stop supervise-managed programs in a more

Nick Leverton wrote a patch to qmail-send to cause it to suspend remote

delivery without needing to restart qmail.

Ximenes Zalteca improved Dave s patch so that broken

versions of Eudora which emit a

CAPA command can still work with qmail s POP3 server.

Fred Lindberg has a patch which causes qmail-send to preserving

the MIME-ness when bouncing MIME

messages. It requires and includes a patch to ezmlm, since it

Jose Luis Painceira s patch deletes the body on big

bouncing messages. It s based on Fred Lindberg s patch see

previous item. Note that if you use ezmlm, you may need Fred s patch

for ezmlm-return, which is not included here.

Klaus-Uwe R. Ittner wrote a patch to make serialmail enclose the

message as a MIME part, in analogy with qmail-mime.tar.gz. Useful

for all those unfortunate people who use character sets other than

us-ascii and want to be able to decipher what bounced.

patch. This allows substitution of the recipient local/host parts

into the message. Useful for inserting a customized mailto: URL for

list-unsubscribe into the body of the message. Bernhard Graf has a fix for input

user/password based authentication

mechanism for qmail-smtpd. This lets your microsoft s outlook express

supports outgoing mail server user name and netscape 4.5 and

above-betas users securely roam. Users can use a slightly modified

version of their own checkpassword.c program as outlined in my own vchkpw.c that I use.

Also, two very simple perl scripts to perform pop3-based

Krzysztof Dabrowski has made some improvements to

Mrs. Brisby s SMTP-AUTH, to let it work with CRAM-MD5

restrictions on top of Krzysztof s SMTP-AUTH patch.

Yet Another qmail SMTP AUTH Patch.

Frederik Vermeulen has written a

starttls in qmail qmail-smtpd as server, qmail-remote as

client. This means you can get SSL or TLS encrypted and

authenticated SMTP between the MTAs and between MTA and an MUA

Oliver Hitz wrote a small tool to

SMTP-AUTH CRAM-MD5 authentication.

Petri Kaukasoina wrote a little shared library which should help

on Linux. Linux does not automagically fsync metadata

information necessary tomake a file appear in the filesystem. It

only fsyncs metadata when the the directory is fsynced.

Bruce Guenter s syncdir gives qmail bsd

fsync semantics on a Linux filesystem.

Scott Moorhouse rewrote a patch which someone had written earlier

and which I failed to publish here to work around a Netscape bug, the

symptoms of which are that it does not know how big a message is, so

Frank DENIS wrote a patch to truncate bounce

copy, by author s request, on the off chance that the user may

have kept a copy of the email.

takeshi SoftAgency.co.jp wrote MySQL

QMAIL, including qmail-getpw-mysql and checkpassword-mysql, to

look up users in a mysql database. Iain Patterson has

Michael Devogelaere s qmail-sql now includes ODBC support.

The prolific Bruce Guenter has written qmail-qfilter, which is

a front end for qmail-queue that can send the body of the message

through one or more filters, such as qmail-inject or new-inject.

Matthias Andree has a patch to allow qmail s sendmail wrapper to ignore the -N dsn

option that sendmail has, for compatibility with MUAs that use the

changes to qmail-remote to send using

QMTP. If you wish to receive mail via qmtp, run qmtpd.

Gerrit Pape has Debian packages.

Klaus Reimer has code to change

messages. Note that this has the potential to break QSBMF.

Scott Woods has qmail running on

to make it run on UNICOS, but it s running.

patch is available. This solves the problem seen when a host

has more IP addresses than it knows about. This happens in particular

when you have an IP masquerading load balancer in front of a host.

Mark Delaney noted that he was getting spam with a

null envelope sender. That by itself is insufficient reason to reject

the email. However, when the spam has multiple envelope recipients,

it cannot be a bounce message. So, Charles

Cazabon wrote a patch to enforce single

patch, which solves the silly qmail syndrome. That s where

qmail spends more time processing incoming email than scheduling

deliveries. You can get it with big-todo integrated as

Dr. Erwin Hoffmann has written

client patch alternate location so it works with multiple users. This is of most

use for a desktop qmail installation which needs to relay mail through

a server that requires authentication. The original

author was Jay Soffian documentation,

person to touch that patch was Robert

Giacomo Cariello used to have

Adrian Ho has increased qmail-remote s compliance with

RFC2821. Some smtp servers are now emitting 5XX responses from the

get-go, and mere RFC821 behavior doesn t deal well with them.

James Raftery wants the canonicalized hostname in

the logfile, so he can see the real envelope recipients of

messages after host name canonicalization. If you send a mail to me

at lecter www.redbroock.dcu.ie, your logs will show to remote

lecter www.redbrook.dcu.ie but qmail-remote will actually use

lecter prodigy.redbrook.dcu.ie in the RCPT TO command.

Miguel Beccari has QmailToaster RPM

packages. Features: Mail Server pop3, pop3-ssl, imap4, imap-ssl,

smtp, smtp-ssl, Web Administration Tools vpopmail, vqadmin, Web

Mail Client horde, Mailing lists ezmlm, Autoresponder, Antispam.

authentication support to serialsmtp..

Jan Knepper has a qmail virtual

outgoing IP address patch, based on IP adddress.

IP address patch, but his uses a control file to do the

Will Harris has a patch to make

1870 compliant, i.e. to support the ESMTP SIZE command. Erwin

Andreas Mueller has compiled qmail for HP-UX.

J. de Boyne Pollard suggests that

the bodge that works around a BIND version 4 problem

-f emulation doesn t set the default for the username as sendmail

Insist that your local users use

Balazs Nagy has a concurrent IP

connection limiter for ucspi-tcp. Tomislav Randjic has ported

Joshua Megerman wrote a patch to

per-IP connection limiting in qmail-send and qmail-remote.

Matthew Trout checks SMTP clients

relays before he will accept email from them.

John R Levine has written a SMTP AUTH

patch for ofmipd in mess822-0.58.

Various people have created patches centered around the SMTP

conversation s MAIL FROM: and RCPT TO: verbs.

Frederik Vermeulen got tired of

his users sending oversize attachments, so he wrote an experimental

patch that provides a qmail-queue replacement that detaches large attachments

from an email and replaces them by an URL where the attached files can

be downloaded to avoid large attachments being sent over the internet

Lukas Feiler has merged several patches into his bigqmail patch.

netqmail-1.05-tls-smtpauth-20060105.patch

big-ext-todo EXTTODO patch big-todo patch

Alberto Brealey-Guzman s outgoingips patch

Christopher K. Davis DNS patch

Kazinori Fujiwara has an IPv6 patch

Animesh Bansriyar needed to limit

Dan s rblsmtpd blocks spam using the RBL and other

DNS-based lists. Because of the size of the RSS zone, they have

removed the necessary TXT records that rblsmtpd relies on. Alan Curry

has a patch to rblsmtpd to make it work with

certain A record responses from the bl lookup.

Nelson has a pair of programs to help keep

Jason R. Mastaler has improved TMDA, an anti-spam system.

Lionel Widdifield wrote an anti-spam patch. Someone made some

improvements to Lionel s patch, which Lindsay Haisley has ported to qmail 1.03.

full regexp matching on envelope addresses.With REs Regular

Expresions it becomes quite easy to filter out email addresses that

contain invalid characters or simply aren t a real address. Andrew

insensitive pattern matching and logging when a match is found.

Johnson has a patch to implement tarpitting in

qmail-smtpd. If you don t know what tarpitting is, it s the practice

of inserting a small sleep in an SMTP session for each RCPT TO after

some set number of RCPT TOs. The idea is to thwart spammers who would

hand your SMTP server a single message with a long list of RCPT

ensure that the domain name on the envelope sender is a

valid DNS name. This is not terribly effective against spammers,

but I list it here because some people want it.

Jon Rust wrote qrblcheck, which reads

a message on stdin, grabs the IP address from the Received lines and

checks it against five different DNS-based spamlists.

replacement to filter against DNS spamlists..

It uses Bruce Guenter s QMAILQUEUE patch.

Matching email is not rejected, but instead an X-RBL: header is added,

for filtering at the delivery layer.

O Shaughnessy Evans has a set of

shell scripts that comprise a spam-filtering system called spamrule.

Ask Bjørn Hansen wrote qpsmtpd, a smtp server

with filtering tools. It s written in perl.

Rolf Eike Beer has implemented replacements for qmail-smtpd

and qmail-remote which add features like IPv6, STARTTLS, AUTH,

combines many spam control features. Includes SMTP Auth with

EnderUNIX Team wrote spamGuard, which

scans your log files for too much email from a particular user, and

Russell Nelson has a patch to reject relay probes generated by

so-called anti-spammers. These relay probes have . , and

in the local username part of the address.

Dale Woolridge, James Law, and

patch provides a method to rate limit/stutter spam message throughput

via a highly parameterized control interface. As of release 2.01,

tcpserver is no longer a strict requirement.

James Grinter has instructions on

SpamAssassin. It s a script that runs from a. qmail file.

Noel Mistula wrote checkhab, which checks

for HTML, attachments, and binaries in email, and blocks them.

Gerrit Pape wrote qconfirm, a delivery

confirmation process for a mail address.

create and verify timestamped e-mail addresses. These addresses

expire after a user-configurable period of time; any mail sent to an

techniques to deal with double-bouncing

perl module implements an object oriented interface to a Quick Mail

Transfer Protocol QMTP client which enables a perl program to

time-limited email-address program called datedmail.

Luca Morettoni wrote qmail-rblchk,

which checks the IP address in the Received: line of an email message

on stdin against named DNSBLs.

Jean-Eudes ONFRAY wrote a rhsbl patch for tcpserver. This lets you

block or whitelist email based on the reverse-DNS hostname rather than

Christophe Saout wrote a SPF checker that runs

inside qmail-smtpd and is written using the native dns and string

functions that come with qmail.

Marcelo Coelho has written a patch for SRS. More

W32/Sober-G at the SMTP level.

RCPTCHECK at the RCPT TO. RCPTCHECK is run in the same

environment as qmail-smtpd. Additionally SENDER is set to the

envelope from and RECIPIENT is set to the envelope recipient for the

current rcpt to. Based on the return code exit value of

RCPTCHECK, the rcpt to: address will either be accepted or rejected.

page regarding recipient checking if

qmail is in front of a exchange server.

Thomas Mangin has a greylisting

Jon Lewis has an SMTP banner delay

program. This causes SMTP clients which give up early, or start

pipelining too soon, to have their connections rejected. Typically

these clients are sources of spam.

Russ Nelson wrote the selfhelo patch, which

causes qmail-smtpd to reject email sent using a HELO hostname equal to

your IP address, your hostname, or any hostname without dots.

Clippinger has written a filter for qmail that blocks spam at

connection-time, called spamdyke It s

similar to DJB s rblsmtpd but it provides a lot more features than

rblsmtpd, including blacklisting, graylisting, limiting numbers of

recipients, checking rDNS entries, checking DNS RBLs, vastly superior

logging and more. spamdyke supports SMTP AUTH and TLS, and will even

provide SMTP AUTH to unpatched qmail installations. Recompiling qmail

is not necessary to use spamdyke.

Andrew Richards has written NORCPTHOSTS,

which mandates authentication for relaying hosts. The sender must

authenticate before sending _any_ mail including to rcpthosts listed

domains, regardless of the content of control/rcpthosts. cdb. It s

enabled by an environment variable.

Jan Mojzis uses the postgrey daemon.

talkers in the SMTP dialog. Building on the work of Erwin

Hoffmann and John Simpson, Andrew has a patch to netqmail-1.06 with

qmail-errmsg logging patch to catch and disconnect connections that

try to send SMTP commands before the SMTP greeting has been issued by

The definitions of errno in qmail and tcpserver

do not work with the newest glibc 2.3.1. Debian and redhat are

updating to this glibc. Executables compiled with older glibc s 2.3

abort on startup, and recompilation with 2.3.1 is not possible. Mate

of djb s software. Erwin Hoffmann points out that a one-line sed

script will fix most of DJB s software. Look in the Tips section.

qmail ought to recognize 0.0.0.0 as a local IP

patch from Scott Gifford implements that change.

David Phillips noticed that sendmail s -f option

sets a default From: header, and so should

Bruce Guenter has written a patch which

causes any program that would run qmail-queue to look for an

environment variable QMAILQUEUE. If it

is present, it is used in place of the string bin/qmail-queue when

running qmail-queue. This could be used, for example, to add a

program into the qmail-smtpd- qmail-queue pipeline that could do

filtering, rewrite broken headers, etc.

Send kudos/brickbats/contributions to Russell

Nelson. Some design contributed by Steve Cole

and Olivier Mueller. Some lint ing by Paul Theodoropoulos.

Last modified: Wed Mar 23 :58 EDT 2011

Gratuitious blank lines added so that top.html link works.

The big qmail picture: qmail-ldap: BGPDNS: The big qmail picture Page 1 2 3 4 each 47K, GIF, 19980814 V1.03 The big qmail picture 271K, PowerPoint95.