diff --git a/sendmail/manifests/init.pp b/sendmail/manifests/init.pp index 4ed05cc..8dc0396 100644 --- a/sendmail/manifests/init.pp +++ b/sendmail/manifests/init.pp @@ -178,6 +178,12 @@ class sendmail::client::msa inherits sendmail::client { # $sendmail_datadir: # Directory for mail spool. # +# $sendmail_milter: +# List of milters to use. For example: +# $sendmail_milter = [ +# $spamassassin::milter::sendmail_milter, +# ] +# class sendmail::server inherits sendmail::common { include procmail diff --git a/sendmail/templates/sendmail.mc.erb b/sendmail/templates/sendmail.mc.erb index f879a39..624c549 100644 --- a/sendmail/templates/sendmail.mc.erb +++ b/sendmail/templates/sendmail.mc.erb @@ -57,7 +57,12 @@ FEATURE(`access_db', `hash -T -o /etc/mail/access.db')dnl FEATURE(`blacklist_recipients')dnl EXPOSED_USER(`root')dnl dnl # +<% if @sendmail_milter -%> +<% milters = @sendmail_milter.collect { |name,opts| name }.join(",") -%> +DAEMON_OPTIONS(`Port=smtp, Name=MTA, M=A, InputMailFilters=<%= milters %>')dnl +<% else -%> DAEMON_OPTIONS(`Port=smtp, Name=MTA, M=A')dnl +<% end -%> <% if @ssl_key and @ssl_cert -%> DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl <% end -%> @@ -76,5 +81,12 @@ define(`confMATCH_GECOS')dnl define(`confDOMAIN_NAME', `<%= @mail_domain %>')dnl define(`confDONT_BLAME_SENDMAIL', `GroupWritableDirpathSafe,GroupWritableIncludeFileSafe,GroupWritableForwardFile,ForwardFileInGroupWritableDirPath')dnl dnl # +<% if @sendmail_milter -%> +define(`confMILTER_MACROS_ENVRCPT', `b, r, v, Z, 'confMILTER_MACROS_ENVRCPT)dnl +<% @sendmail_milter.each do |name,opts| -%> +MAIL_FILTER<%= "(`%s', `%s')" % [name, opts] %> +<% end -%> +dnl # +<% end -%> MAILER(smtp)dnl MAILER(procmail)dnl