A modern mail transfer agent suite around eQmail

User Tools

Site Tools

Plugin API's

openQmail's core component eQmail (version 1.09 or newer) provides 3 plugin interfaces. These ordered historical:

For a better understanding it would good to be familiar with the big qmail picture and may be variations of it. The design of qmail allows it to easily wrap around a program as long the pipe will not be broken.

plugin before qmail-queue

The naming comes from the fact that there could be set an environment variable QMAILQUEUE. The idea is quite simple. By default  qmail-smtpd  and  qmail-inject  are calling  qmail-queue . This was hard coded. By setting QMAILQUEUE this will plugin another program into the pipe:

  qmail-smtpd  \
                 -> <new program> -- qmail-queue       
  qmail-inject /

To not break the pipe the <new program> have to call  qmail-queue . In case of multiple <new programs> - one after another - the last one have to invoke  qmail-queue .


The patch qmail-spp was introduced by dirqmail and was going popular quickly. Simply it allows to do extra stuff at each command during the smtp dialog. Examples of usage are recipient checks or greylisting. More plugins can be found at the qmail-spp homepage.

plugin before qmail-remote

One thing missing was the availability to manipulate an outgoing mail. With eQmail it is easy to plugin a program in the - formerly hardcoded - pipe between  qmail-rspawn  and  qmail-remote :

  qmail-rspawn --> qmail-bfrmt --> qmail-remote

This allows to manipulate outgoing mails.

Last modified: 2018/09/20 06:11

Page Tools