Could not retrieve sendmail macro _!. Please add it to confMILTER_MACROS_CONNECT for better spamassassin results
I am getting $SUBJECT on my RHEL6 box running sendmail, spamassassin, spamass-milter, clamav-milter, and milter-greylist. My sendmail.mc looks like this: [root@spamcatcher ~]# grep -v ^dnl /etc/mail/sendmail.mc divert(-1)dnl include(`/usr/share/sendmail-cf/m4/cf.m4')dnl VERSIONID(`setup for linux')dnl OSTYPE(`linux')dnl define(`confDEF_USER_ID', ``8:12'')dnl define(`confTO_CONNECT', `1m')dnl define(`confTRY_NULL_MX_LIST', `True')dnl define(`confDONT_PROBE_INTERFACES', `True')dnl define(`PROCMAIL_MAILER_PATH', `/usr/bin/procmail')dnl define(`ALIAS_FILE', `/etc/aliases')dnl define(`STATUS_FILE', `/var/log/mail/statistics')dnl define(`UUCP_MAILER_MAX', `200')dnl define(`confUSERDB_SPEC', `/etc/mail/userdb.db')dnl define(`confPRIVACY_FLAGS', `authwarnings,novrfy,noexpn,restrictqrun')dnl define(`confAUTH_OPTIONS', `A')dnl define(`confTO_IDENT', `0')dnl FEATURE(`no_default_msa', `dnl')dnl FEATURE(`smrsh', `/usr/sbin/smrsh')dnl FEATURE(`mailertable', `hash -o /etc/mail/mailertable.db')dnl FEATURE(`virtusertable', `hash -o /etc/mail/virtusertable.db')dnl FEATURE(redirect)dnl FEATURE(always_add_domain)dnl FEATURE(use_cw_file)dnl FEATURE(use_ct_file)dnl FEATURE(local_procmail, `', `procmail -t -Y -a $h -d $u')dnl FEATURE(`access_db', `hash -TTMPF -o /etc/mail/access.db')dnl FEATURE(`blacklist_recipients')dnl EXPOSED_USER(`root')dnl DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl FEATURE(`accept_unresolvable_domains')dnl LOCAL_DOMAIN(`localhost.localdomain')dnl MAILER(smtp)dnl MAILER(procmail)dnl INPUT_MAIL_FILTER(`spamassassin', `S=unix:/var/run/spamass-milter/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl define(`confMILTER_MACROS_CONNECT',`t, b, j, _, {daemon_name}, {if_name},{if_addr}')dnl define(`confMILTER_MACROS_ENVRCPT',confMILTER_MACROS_ENVRCPT`, b, r, v, Z')dnl INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clamav-milter.sock, F=, T=S:4m;R:4m')dnl INPUT_MAIL_FILTER(`greylist',`S=local:/var/milter-greylist/milter-greylist.sock')dnl define(`confMILTER_MACROS_CONNECT', `j, {if_addr}')dnl define(`confMILTER_MACROS_HELO', `{verify}, {cert_subject}')dnl define(`confMILTER_MACROS_ENVFROM', `i, {auth_authen}')dnl define(`confMILTER_MACROS_ENVRCPT', `{greylist}')dnl define(`confINPUT_MAIL_FILTERS', `spamassassin, clmilter, greylist') What have I done wrong? I confess I am not an m4 maven, I just copied recommended settings from various web sites. TC
Re: Could not retrieve sendmail macro _!. Please add it to confMILTER_MACROS_CONNECT for better spamassassin results
On Sun, 3 Jun 2012, Thomas Cameron wrote: I am getting $SUBJECT on my RHEL6 box running sendmail, spamassassin, spamass-milter, clamav-milter, and milter-greylist. My sendmail.mc looks like this: [root@spamcatcher ~]# grep -v ^dnl /etc/mail/sendmail.mc divert(-1)dnl include(`/usr/share/sendmail-cf/m4/cf.m4')dnl VERSIONID(`setup for linux')dnl OSTYPE(`linux')dnl [snip..] EXPOSED_USER(`root')dnl DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl FEATURE(`accept_unresolvable_domains')dnl LOCAL_DOMAIN(`localhost.localdomain')dnl MAILER(smtp)dnl MAILER(procmail)dnl INPUT_MAIL_FILTER(`spamassassin', `S=unix:/var/run/spamass-milter/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl define(`confMILTER_MACROS_CONNECT',`t, b, j, _, {daemon_name}, {if_name},{if_addr}')dnl define(`confMILTER_MACROS_ENVRCPT',`, b, r, v, Z')dnl INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clamav-milter.sock, F=, T=S:4m;R:4m')dnl INPUT_MAIL_FILTER(`greylist',`S=local:/var/milter-greylist/milter-greylist.sock')dnl define(`confMILTER_MACROS_CONNECT', `j, {if_addr}')dnl define(`confMILTER_MACROS_HELO', `{verify}, {cert_subject}')dnl define(`confMILTER_MACROS_ENVFROM', `i, {auth_authen}')dnl define(`confMILTER_MACROS_ENVRCPT', `{greylist}')dnl define(`confINPUT_MAIL_FILTERS', `spamassassin, clmilter, greylist') What have I done wrong? I confess I am not an m4 maven, I just copied recommended settings from various web sites. TC Your problem is that you have two different define(`confMILTER_MACROS_CONNECT statements, the first one has what you need the second one does not. As the M4 processing is done squentially, the second one overwrite the first and blows out your '_' parameter. Get rid of that line that says: define(`confMILTER_MACROS_CONNECT', `j, {if_addr}')dnl (it's a proper subset of that first confMILTER_MACROS_CONNECT def) Take those two different confMILTER_MACROS_ENVRCPT and properly merge their parameter list into one statement: define(`confMILTER_MACROS_ENVRCPT',confMILTER_MACROS_ENVRCPT`, b, r, v, Z')dnl define(`confMILTER_MACROS_ENVRCPT', `{greylist}')dnl (that first one is borked anyway) delete them and replace with: define(`confMILTER_MACROS_ENVRCPT', `b, r, v, Z, {greylist}')dnl IE you want only ONE of each of those define(`confMILTER_MACROS_*',... kind of statements. If your different milters want different sets of parameters you need to make a compilation of parameters for each kind of statement. Onec you've made these edits, re-make your sendmail.cf file and restart sendmail to use the new .cf -- Dave Funk University of Iowa dbfunk (at) engineering.uiowa.eduCollege of Engineering 319/335-5751 FAX: 319/384-0549 1256 Seamans Center Sys_admin/Postmaster/cell_adminIowa City, IA 52242-1527 #include std_disclaimer.h Better is not better, 'standard' is better. B{
Re: [sendmail,milter,ident] Could not retrieve sendmail macro _!. Please add it to confMILTER_MACROS_CONNECT for better spamassassin results
On 06/03/2012 11:44 PM, Thomas Cameron wrote: I am getting $SUBJECT on my RHEL6 box running sendmail, spamassassin, spamass-milter, clamav-milter, and milter-greylist. My sendmail.mc looks like this: [root@spamcatcher ~]# grep -v ^dnl /etc/mail/sendmail.mc [] define(`confTO_IDENT', `0')dnl [] INPUT_MAIL_FILTER(`spamassassin', `S=unix:/var/run/spamass-milter/spamass-milter.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl define(`confMILTER_MACROS_CONNECT',`t, b, j, _, {daemon_name}, {if_name},{if_addr}')dnl [...] What have I done wrong? I confess I am not an m4 maven, I just copied recommended settings from various web sites. By setting confTO_IDENT to zero you have disabled ident lookups. Anyway disabling ident lookups is not a bad idea because AFAIK most hosts nowadays do not support it.