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.
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.
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.