MailScanner Installation Guide — Sendmail

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:

Create the Second Queue

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.

Change Commands That Start Sendmail

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 -q15m
You should change this to the following two lines:
    sendmail -bd -OPrivacyOptions=noetrn -ODeliveryMode=queueonly -OQueueDirectory=/var/spool/mqueue.in
    sendmail -q15m
This 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.


Julian Field