Hi guys, Is it possible to use multiple milters with sendmail?
Yes.
and if so, what determines the order they are applied?
The order in which you specify them in your confINPUT_MAIL_FILTERS entry in the .mc file.
include(`/usr/share/sendmail-cf/m4/cf.m4')dnl VERSIONID(`@(#)ohpp')dnl OSTYPE(linux)dnl FEATURE(nocanonify)dnl MASQUERADE_AS(ohpp.com)dnl FEATURE(allmasquerade)dnl dnl Milter dnl APPENDDEF(`conf_sendmail_ENVDEF', `-DMILTER') define(`MAIL_HUB', `mail.domain.com')dnl define(`SMART_HOST', `mail.domain.com')dnl define(`confFORWARD_PATH', `')dnl define(`STATUS_FILE', `/var/log/mail/statistics')dnl define(`UUCP_MAILER_MAX', `2000000')dnl FEATURE(`smrsh',`/usr/sbin/smrsh')dnl dnl SpamAssassin Milter INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass.sock, F=,T=C:15m;S:4m;R:4m;E:10m') dnl ClamAV Milter INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clamd.sock, F=,T=S:4m;R:4m')dnl define(`confINPUT_MAIL_FILTERS', `clmilter')dnl
define(`confINPUT_MAIL_FILTERS', `spamassassin;clmilter')dnl
dnl FEATURE(always_add_domain)dnl FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl EXPOSED_USER(`root')dnl MAILER(smtp)dnl
At least that's how I *think* you do it in sendmail 8.12.x. I'm using 8.13.x and only run milters on the MTA daemon, not on the MSA:
MAIL_FILTER(`headercheck-milter', `S=unix:/var/run/headercheck-milter/headercheck-milter.sock, F=T, T=C:4m;S:4m;R:8m;E:16m')dnl
MAIL_FILTER(`spfmilter', `S=unix:/var/run/spfmilter/spfmilter.sock, F=T, T=C:4m;S:4m;R:8m;E:16m')dnl
FEATURE(`no_default_msa')dnl
DAEMON_OPTIONS(`Port=smtp, Name=MTA, InputMailFilters=headercheck-milter;spfmilter')dnl
DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl
Paul.