qpsmtpd plugins

This page contains a list of plugins written by various people.

Warning! This list is rather outdated. For a more up-to-date list see the wiki!

Name Author URL
quit_fortune (in distribution)
Prints fortune at quit. Demo module, no practical use.
check_earlytalker (in distribution)
Hooks connect, checks to see if the remote host starts talking before we've issued a 2xx greeting. If so, we're likely looking at a direct-to-MX spam agent which pipelines its entire SMTP conversation, and will happily dump an entire spam into our mail log even if later tests deny acceptance.
count_unrecognized_commands (in distribution)
Disconnect the client if it sends too many unrecognized commands. Good for rejecting spam sent through open HTTP proxies.
require_resolvable_fromhost (in distribution)
rhsbl (in distribution)
Test domain name of envelope from against RHS blackhole lists (e.g., most of the rfc-ignorant.org zones)
dnsbl (in distribution)
Test ip address of sender against blackhole lists
hnbl Frank Johnson http://web.they.org/software/mailfun/
HostName BlackList. Rejects senders if they don't have a PTR record (soft) or the reverse name match one of a list of regular expressions (hard).
check_badmailfrom (in distribution)
Test envelope from against local black list
check_badrcptto (in distribution)
Test envelope rcpt against local black list. This is useful if you want to reject only a few "burnt" addresses but otherwise accept all addresses for a domain.
check_spamhelo (in distribution)
Test helo against local black list.
aliases Peter J. Holzer http://www.hjp.at/projekte/qpsmtpd/aliases/
Looks up Rcpt addresses in a local aliases file, rejects unknown addresses, expands aliases (preserving the detail string) and sets per rcpt options (which can be used by other modules).
batv Peter J. Holzer http://www.hjp.at/projekte/qpsmtpd/batv/
An implementation of batv.
denysoft_greylist Gavin Carr http://www.openfusion.com.au/labs/qpsmtpd/denysoft_greylist

Plugin to implement the 'greylisting' algorithm proposed by Ed Harris in http://projects.puremagic.com/greylisting/. Greylisting is a form of denysoft filter, where unrecognised new connections are temporarily denied for some initial period, to foil spammers using fire-and-forget spamware, http_proxies, etc.

I use a customized version of this module which allows to enable greylisting only for some recipients and to exclude some IP adresses.

rcpt_ok Peter J. Holzer http://www.hjp.at/projekte/qpsmtpd/rcpt_ok/
This module simply returns OK for each rcpt request. It is meant to be called after other plugins which return DECLINED for addresses which are ok (e.g, the aliases plugin).
check_delivery Rasjid Wilcox http://www.redhotpenguin.com/check_delivery

Enable user-level validation of addresess so that qpsmtpd can readily bounce invalid messages at the smtp level.

It does this by expanding the recipient address into the relevant username(s) and delivery addresses using the same algorithm that qmail itself uses. It has a basic ability to parse .qmail files and act accordingly.

Rasjid wrote on 2003-11-29:

I have recently migrated my home website and mailserver to a public email and webhosting provider, and so am no longer running qpsmtpd.

As such, I am no longer really able to do any work on check_delivery, and would like to pass it on to someone else.

klez_filter (in distribution)
A simple content filter. Catches lots of other EXE files (but not all of them) besides Klez.
spamassassin (in distribution)
Pass mail to spamd for markup or rejection.
spamassassin Skaag Argonius http://gw.nsa.co.il/qpsmtpd/spamassassin
Pass mail to spamd for markup or rejection. This version calls spamc instead of talking directly to spamd.
queue/postfix-queue Peter J. Holzer (in distribution since version 0.27)
This plugin passes mails on to the postfix cleanup daemon.
queue/qmail-queue (in distribution)
This is the most common plugin used to queue incoming mails. It pipes mails to /var/qmail/bin/qmail-queue. smtp
queue/smtp-forward (in distribution)
This plugin forwards the mail via SMTP to a specified server. The error checking is weak. In the version distributed with qpsmtpd 0.26, mails would be silently dropped if the the SMTP server rejected them. A patch is available.
cf_wrapper Peter J. Holzer http://www.hjp.at/projekte/qpsmtpd/cf_wrapper/
The cf_wrapper plugin provides a framework for content filters which may reject or accept a mail for different recipients.
client_options Peter J. Holzer http://www.hjp.at/projekte/qpsmtpd/client_options/
The client_options plugin adds values to the connection note "client_options" depending on the connecting client's IP address or host name.
client_stats Peter J. Holzer http://www.hjp.at/projekte/qpsmtpd/client_stats/
Plugin to record per client statistics of successful and failed deliveries, These can be used to distinguish between ``good'' and ``bad'' clients.