Qpsmtpd

{{lowercase|title=qpsmtpd}}

{{Infobox software

|name = qpsmtpd

|screenshot =

|logo =

|caption = a flexible smtpd daemon written in Perl

|developer = Ask Bjørn Hansen

|latest_release_version = 1.00

|latest_release_date = {{release date and age|2023|02|17}}{{cite web |title=Releases |url=https://github.com/smtpd/qpsmtpd/releases |website=Github |access-date=1 September 2019}}

|latest_preview_version =

|latest_preview_date =

|operating_system = Unix

|programming language = Perl

|genre = open-source, Mail transfer agent

|license = MIT license

|website = https://smtpd.github.io/qpsmtpd/

}}

qpsmtpd is an SMTP daemon written in Perl. It was originally designed to be a drop-in replacement for qmail-smtpd, the SMTP component of qmail, and it is now also compatible with Postfix, Exim, sendmail and virtually any software that "speaks SMTP". It has a flexible plugin system, making it easy to interoperate with other pieces in a mail system.

Its main purpose is to allow mail administrators to perform more advanced spam filtering than is possible with other SMTP daemons. As one example of dozens, the earlytalker plugin blocks many viruses and mass mailers based on their characteristic violation of basic protocol, even before they start sending mail data.

The program's main author is Ask Bjørn Hansen. It is licensed under the MIT License.

Qpsmtpd Plugins

A defining virtue of qpsmtpd is its plugin system and collection of plugins. In addition to basic plugins qpsmtpd has a suite of additional plugins that provide integration with external mail filters and processors as well as implementations of many email technologies. The following list is just a few of the many qpsmtpd plugins.

class="wikitable"
NameDescription
GeoIP{{cite web| url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/ident/geoip|title=GeoIP plugin|last=Simerson|first=Matt|website=GitHub }}Use GeoIP databases to report geographic information about incoming connections, including distance in km. Assign negative karma from senders that are "too far" away.
p0f{{cite web|title=p0f plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/ident/p0f|publisher=github|last=Spier|first=Robert|access-date=25 April 2013}}p0f uses TCP fingerprint info to identify the senders Operating System, network distance, and more.
karma{{cite web|title=Karma plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/karma|work=GitHub|access-date=25 April 2013}}sender history. Treat senders differently based on message heuristics and sending history.
dnsbl{{cite web|title=DNSBL plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/dnsbl|work=GitHub|access-date=25 April 2013}}DNS blacklists
earlytalker{{cite web|title=Earlytalker plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/earlytalker|first= Devin|last=Carraway|work=GitHub|access-date=25 April 2013}}Assure the client doesn't talk before we send the SMTP banner
helo{{cite web|title=HELO plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/helo|work=GitHub|last=simerson|first=matt|access-date=25 April 2013}}validate the HELO or EHLO message presented by the sender
auth:*{{cite web|title=QP Authentication plugins|url=https://github.com/smtpd/qpsmtpd/tree/master/plugins/auth|work=GitHub|publisher=qpsmtpd|access-date=25 April 2013}}plugins for user authentication include vpopmail, checkpassword, flat_file, and ldap
SPF{{cite web|title=QP SPF plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/sender_permitted_from|work=GitHub|last=Sergeant|first=Matt|publisher=qpsmtpd|access-date=25 April 2013}}Sender Policy Framework
greylisting{{cite web|title=QP greylisting plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/greylisting|work=GitHub|publisher=qpsmtpd|last=Carr|first=Gavin|access-date=25 April 2013}}temporary deferrals for unknown senders
headers{{cite web|last=Simerson|first=Matt|title=QP headers plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/headers|work=GitHub|publisher=qpsmtpd|access-date=25 April 2013}}message header validation
URIBL{{cite web|last=Devin|first=Carraway|title=QP URIBL plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/uribl|work=GitHub|publisher=qpsmtpd|access-date=25 April 2013}}scan message content for blacklisted URLs
Domainkeys{{cite web|last=Peacock|first=John|title=QP Domainkeys plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/domainkeys|work=GitHub|publisher=qpsmtpd|access-date=25 April 2013}}validate domainkeys signatures on incoming mail
DKIM{{cite web|title=QP DKIM plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/dkim|work=GitHub|last=Simerson|first=Matt|publisher=qpsmtpd}}validate DKIM signatures and DKIM sign outgoing messages
DMARC{{cite web|title=QP dmarc plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/dmarc|first=Matt|last=Simerson|work=GitHub|publisher=qpsmtpd|access-date=25 April 2013}}implements the draft DMARC specification for email authentication
SpamAssassin{{cite web|title=QP spamassassin plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/spamassassin|work=GitHub|publisher=qpsmtpd|access-date=25 April 2013}}the venerable spam detector
dspam{{cite web|title=QP dspam plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/dspam|work=GitHub|publisher=qpsmtpd|first=Matt|last=Simerson|access-date=25 April 2013}}DSPAM is a bayesian anti-spam filter optimized for speed.{{cite web|title=Dspam web site|url=http://sourceforge.net/apps/mediawiki/dspam/index.php?title=Main_Page|work=sourceforge|access-date=25 April 2013}}
AntiVirus{{cite web|title=QP anti-virus plugins|url=https://github.com/smtpd/qpsmtpd/tree/master/plugins/virus|work=GitHub|publisher=qpsmtpd|access-date=25 April 2013}}A collection of plugins for AVE, Bitdefender, ClamAV, hbevd, Sophie, and uvscan
FCrDNS{{cite web|last=Simerson|first=Matt|title=QP FCrDNS plugin|url=https://github.com/smtpd/qpsmtpd/blob/master/plugins/fcrdns|work=GitHub|publisher=qpsmtpd|access-date=25 April 2013}}validate sender has FCrDNS configured

{{Reflist}}

See also

{{Portal|Free and open-source software}}

Further reading

  • [http://www.oreillynet.com/pub/a/sysadmin/2005/09/15/qpsmtpd.html Using qpsmtpd]
  • [http://searchenterpriselinux.techtarget.com/tip/0,289483,sid39_gci1235770,00.html TechTarget article on qpsmtpd]
  • [http://www.taint.org/2007/04/17/132339a.html Using qpsmtpd for traps.spamassassin.org]