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-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
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 --> qmail-bfrmt --> qmail-remote
This allows to manipulate outgoing mails.