I have tested this system on sendmail version 8.9.3 and 8.11.3.
Your existing sendmail installation currently listens on the SMTP port (TCP port 25) collecting messages from there, places them in a queue, and delivers them to their destination as soon as possible. This needs to be split into two separate processes, each handled by separate sendmail processes and separate queues:
Your copy of sendmail probably uses the default queue location /var/spool/mqueue. If this directory does not exist, check your sendmail documentation and/or sendmail.cf file for the location of the QueueDirectory. Assuming it is /var/spool/mqueue, create a second queue directory alongside it called mqueue.in and set it to the same ownership and permissions as mqueue. For example,
# cd /var/spool # ls -ld mqueue drwxr-x--- 2 root bin 62976 Oct 23 16:18 mqueue # mkdir mqueue.in # chown root mqueue.in # chgrp bin mqueue.in # chmod u=rwx,g=rx,o-rwx mqueue.in # ls -ld mqueue mqueue.in drwxr-x--- 2 root bin 62976 Oct 23 16:18 mqueue drwxr-x--- 2 root bin 41472 Oct 23 16:18 mqueue.in
This new queue mqueue.in will be used by the copy of sendmail providing the SMTP service.
Currently, your copy of sendmail will be started by a script such as /etc/init.d/mail or /etc/rc.d/init.d/sendmail. Somewhere in this script will be the command to start sendmail itself. This should look like this:
sendmail -bd -q15mYou should change this to the following two lines:
sendmail -bd -OPrivacyOptions=noetrn -ODeliveryMode=queueonly -OQueueDirectory=/var/spool/mqueue.in sendmail -q15mThis first starts the copy of sendmail that provides SMTP service, building the work queue for MailScanner. It then starts the copy of sendmail that delivers the output from MailScanner.
You also might need to change the commands used to shut down sendmail as it now needs to find 2 copies and kill them both. However, this is not critical and the system will work without it.