Re: whitelist_auth return_path / from

Benny Pedersen <[email protected]>
Newsgroups gmane.mail.spam.spamassassin.general
Organization junc.eu
Message-ID <[email protected]>
Simon Wilson via users skrev den 2024-07-03 09:48:

> So I guess the question is why SA is not accepting a trusted header
> with a DKIM pass recorded with the same mail path through the system?
> I have no AuthRes settings set specifically in local.cf.

so add it :)

ifplugin Mail::SpamAssassin::Plugin::AuthRes

     authres_networks all

     authres_trusted_authserv mail.simonandkate.net

     describe AUTHRES_ARC_FAIL Authentication-Results: has "arc=fail" 
result
     describe AUTHRES_ARC_NONE Authentication-Results: has "arc=none" 
result
     describe AUTHRES_ARC_PASS Authentication-Results: has "arc=pass" 
result
     header AUTHRES_ARC_FAIL eval:check_authres_result('arc', 'fail')
     header AUTHRES_ARC_NONE eval:check_authres_result('arc', 'none')
     header AUTHRES_ARC_PASS eval:check_authres_result('arc', 'pass')
     score AUTHRES_ARC_FAIL 1.5
     score AUTHRES_ARC_NONE 0.5
     score AUTHRES_ARC_PASS -1.5

     describe AUTHRES_ADSP_DISCARD Authentication-Results: has 
"dkim-adsp=discard" result
     describe AUTHRES_ADSP_FAIL Authentication-Results: has 
"dkim-adsp=fail" result
     describe AUTHRES_ADSP_NONE Authentication-Results: has 
"dkim-adsp=nonr" result
     describe AUTHRES_ADSP_NXDOMAIN Authentication-Results: has 
"dkim-adsp=nxdomain" result
     describe AUTHRES_ADSP_PASS Authentication-Results: has 
"dkim-adsp=pass" result
     describe AUTHRES_ADSP_PERMERROR Authentication-Results: has 
"dkim-adsp=permerror" result
     describe AUTHRES_ADSP_TEMPERROR Authentication-Results: has 
"dkim-adsp=temperror" result
     describe AUTHRES_ADSP_UNKNOWN Authentication-Results: has 
"dkim-adsp=unknown" result
     header AUTHRES_ADSP_DISCARD eval:check_authres_result('dkim-adsp', 
'discard')
     header AUTHRES_ADSP_FAIL eval:check_authres_result('dkim-adsp', 
'fail')
     header AUTHRES_ADSP_NONE eval:check_authres_result('dkim-adsp', 
'none')
     header AUTHRES_ADSP_NXDOMAIN eval:check_authres_result('dkim-adsp', 
'nxdomain')
     header AUTHRES_ADSP_PASS eval:check_authres_result('dkim-adsp', 
'pass')
     header AUTHRES_ADSP_PERMERROR eval:check_authres_result('dkim-adsp', 
'permerror')
     header AUTHRES_ADSP_TEMPERROR eval:check_authres_result('dkim-adsp', 
'temperror')
     header AUTHRES_ADSP_UNKNOWN eval:check_authres_result('dkim-adsp', 
'unknown')
     score AUTHRES_ADSP_DISCARD 1.5
     score AUTHRES_ADSP_FAIL 0.5
     score AUTHRES_ADSP_NONE 0.5
     score AUTHRES_ADSP_NXDOMAIN 1.5
     score AUTHRES_ADSP_PASS -0.5
     score AUTHRES_ADSP_PERMERROR 0.5
     score AUTHRES_ADSP_TEMPERROR 0.5
     score AUTHRES_ADSP_UNKNOWN 0.5

     describe AUTHRES_ATPS_FAIL Authentication-Results: has 
"dkim-atps=fail" result
     describe AUTHRES_ATPS_NEUTRAL Authentication-Results: has 
"dkim-atps=neutral" result
     describe AUTHRES_ATPS_NONE Authentication-Results: has 
"dkim-atps=none" result
     describe AUTHRES_ATPS_PASS Authentication-Results: has 
"dkim-atps=pass" result
     describe AUTHRES_ATPS_PERMERROR Authentication-Results: has 
"dkim-atps=permerror" result
     describe AUTHRES_ATPS_TEMPERROR Authentication-Results: has 
"dkim-atps=temperror" result
     header AUTHRES_ATPS_FAIL eval:check_authres_result('dkim-atps', 
'fail')
     header AUTHRES_ATPS_NEUTRAL eval:check_authres_result('dkim-atps', 
'neutral')
     header AUTHRES_ATPS_NONE eval:check_authres_result('dkim-atps', 
'none')
     header AUTHRES_ATPS_PASS eval:check_authres_result('dkim-atps', 
'pass')
     header AUTHRES_ATPS_PERMERROR eval:check_authres_result('dkim-atps', 
'permerror')
     header AUTHRES_ATPS_TEMPERROR eval:check_authres_result('dkim-atps', 
'temperror')
     score AUTHRES_ATPS_FAIL 0.5
     score AUTHRES_ATPS_NEUTRAL 0.5
     score AUTHRES_ATPS_NONE 1.5
     score AUTHRES_ATPS_PASS -1.5
     score AUTHRES_ATPS_PERMERROR 0.5
     score AUTHRES_ATPS_TEMPERROR 0.5

     describe AUTHRES_DKIM_FAIL Authentication-Results: has "dkim=fail" 
result
     describe AUTHRES_DKIM_PASS Authentication-Results: has "dkim=pass" 
result
     describe AUTHRES_DKIM_NEUTRAL Authentication-Results: has 
"dkim=neutral" result
     describe AUTHRES_DKIM_NONE Authentication-Results: has "dkim=none" 
result
     describe AUTHRES_DKIM_POLICY Authentication-Results: has 
"dkim=policy" result
     describe AUTHRES_DKIM_PERMERROR Authentication-Results: has 
"dkim=permerror" result
     describe AUTHRES_DKIM_TEMPERROR Authentication-Results: has 
"dkim=temperror" result
     header AUTHRES_DKIM_FAIL eval:check_authres_result('dkim', 'fail')
     header AUTHRES_DKIM_PASS eval:check_authres_result('dkim', 'pass')
     header AUTHRES_DKIM_NEUTRAL eval:check_authres_result('dkim', 
'neutral')
     header AUTHRES_DKIM_NONE eval:check_authres_result('dkim', 'none')
     header AUTHRES_DKIM_POLICY eval:check_authres_result('dkim', 
'policy')
     header AUTHRES_DKIM_PERMERROR eval:check_authres_result('dkim', 
'permerror')
     header AUTHRES_DKIM_TEMPERROR eval:check_authres_result('dkim', 
'temperror')
     score AUTHRES_DKIM_FAIL 0.5
     score AUTHRES_DKIM_PASS -0.5
     score AUTHRES_DKIM_NEUTRAL 0.5
     score AUTHRES_DKIM_NONE 1.5
     score AUTHRES_DKIM_POLICY -0.5
     score AUTHRES_DKIM_PERMERROR 0.5
     score AUTHRES_DKIM_TEMPERROR 0.5

     describe AUTHRES_DMARC_BESTGUESSPASS Authentication-Results: has 
"dmarc=bestguesspass" result
     describe AUTHRES_DMARC_FAIL Authentication-Results: has "dmarc=fail" 
result
     describe AUTHRES_DMARC_PASS Authentication-Results: has "dmarc=pass" 
result
     describe AUTHRES_DMARC_NONE Authentication-Results: has "dmarc=none" 
result
     describe AUTHRES_DMARC_PERMERROR Authentication-Results: has 
"dmarc=permerror" result
     describe AUTHRES_DMARC_TEMPERROR Authentication-Results: has 
"dmarc=temperror" result
     header AUTHRES_DMARC_BESTGUESSPASS 
eval:check_authres_result('dmarc', 'bestguesspass')
     header AUTHRES_DMARC_FAIL eval:check_authres_result('dmarc', 'fail')
     header AUTHRES_DMARC_PASS eval:check_authres_result('dmarc', 'pass')
     header AUTHRES_DMARC_NONE eval:check_authres_result('dmarc', 'none')
     header AUTHRES_DMARC_PERMERROR eval:check_authres_result('dmarc', 
'permerror')
     header AUTHRES_DMARC_TEMPERROR eval:check_authres_result('dmarc', 
'temperror')
     score AUTHRES_DMARC_BESTGUESSPASS -0.5
     score AUTHRES_DMARC_FAIL 1.5
     score AUTHRES_DMARC_PASS -0.5
     score AUTHRES_DMARC_NONE 1.5
     score AUTHRES_DMARC_PERMERROR 0.5
     score AUTHRES_DMARC_TEMPERROR 0.5

     describe AUTHRES_IPREV_FAIL Authentication-Results: has "iprev=fail" 
result
     describe AUTHRES_IPREV_PASS Authentication-Results: has "iprev=pass" 
result
     describe AUTHRES_IPREV_PERMERROR Authentication-Results: has 
"iprev=permerror" result
     describe AUTHRES_IPREV_TEMPERROR Authentication-Results: has 
"iprev=temperror" result
     header AUTHRES_IPREV_FAIL eval:check_authres_result('iprev', 'fail')
     header AUTHRES_IPREV_PASS eval:check_authres_result('iprev', 'pass')
     header AUTHRES_IPREV_PERMERROR eval:check_authres_result('iprev', 
'permerror')
     header AUTHRES_IPREV_TEMPERROR eval:check_authres_result('iprev', 
'temperror')
     score AUTHRES_IPREV_FAIL 1.5
     score AUTHRES_IPREV_PASS -1.5
     score AUTHRES_IPREV_PERMERROR 0.5
     score AUTHRES_IPREV_TEMPERROR 0.5

     describe AUTHRES_SPF_FAIL Authentication-Results: has "spf=fail" 
result
     describe AUTHRES_SPF_HARDFAIL Authentication-Results: has 
"spf=hardfail" result
     describe AUTHRES_SPF_NEUTRAL Authentication-Results: has 
"spf=neutral" result
     describe AUTHRES_SPF_NONE Authentication-Results: has "spf=none" 
result
     describe AUTHRES_SPF_PASS Authentication-Results: has "spf=pass" 
result
     describe AUTHRES_SPF_PERMERROR Authentication-Results: has 
"spf=permerror" result
     describe AUTHRES_SPF_POLICY Authentication-Results: has "spf=policy" 
result
     describe AUTHRES_SPF_SOFTFAIL Authentication-Results: has 
"spf=softfail" result
     describe AUTHRES_SPF_TEMPERROR Authentication-Results: has 
"spf=temperror" result
     header AUTHRES_SPF_FAIL eval:check_authres_result('spf', 'fail')
     header AUTHRES_SPF_HARDFAIL eval:check_authres_result('spf', 
'hardfail')
     header AUTHRES_SPF_NEUTRAL eval:check_authres_result('spf', 
'neutral')
     header AUTHRES_SPF_NONE eval:check_authres_result('spf', 'none')
     header AUTHRES_SPF_PASS eval:check_authres_result('spf', 'pass')
     header AUTHRES_SPF_PERMERROR eval:check_authres_result('spf', 
'permerror')
     header AUTHRES_SPF_POLICY eval:check_authres_result('spf', 'policy')
     header AUTHRES_SPF_SOFTFAIL eval:check_authres_result('spf', 
'softfail')
     header AUTHRES_SPF_TEMPERROR eval:check_authres_result('spf', 
'temperror')
     score AUTHRES_SPF_FAIL 1.5
     score AUTHRES_SPF_HARDFAIL 2.5
     score AUTHRES_SPF_NEUTRAL 0.5
     score AUTHRES_SPF_NONE 2.5
     score AUTHRES_SPF_PASS -0.5
     score AUTHRES_SPF_PERMERROR 0.5
     score AUTHRES_SPF_POLICY 0.5
     score AUTHRES_SPF_SOFTFAIL 0.5
     score AUTHRES_SPF_TEMPERROR 0.5

     describe AUTHRES_VBR_FAIL Authentication-Results: has "vbr=fail" 
result
     describe AUTHRES_VBR_NONE Authentication-Results: has "vbr=none" 
result
     describe AUTHRES_VBR_PASS Authentication-Results: has "vbr=pass" 
result
     describe AUTHRES_VBR_PERMERROR Authentication-Results: has 
"vbr=permerror" result
     describe AUTHRES_VBR_TEMPERROR Authentication-Results: has 
"vbr=temperror" result
     header AUTHRES_VBR_FAIL eval:check_authres_result('vbr', 'fail')
     header AUTHRES_VBR_NONE eval:check_authres_result('vbr', 'none')
     header AUTHRES_VBR_PASS eval:check_authres_result('vbr', 'pass')
     header AUTHRES_VBR_PERMERROR eval:check_authres_result('vbr', 
'permerror')
     header AUTHRES_VBR_TEMPERROR eval:check_authres_result('vbr', 
'temperror')
     score AUTHRES_VBR_FAIL 1.5
     score AUTHRES_VBR_NONE 1.5
     score AUTHRES_VBR_PASS -1.5
     score AUTHRES_VBR_PERMERROR 0.5
     score AUTHRES_VBR_TEMPERROR 0.5

     describe AUTHRES_AUTH_FAIL Authentication-Results: has "auth=fail" 
result
     describe AUTHRES_AUTH_NONE Authentication-Results: has "auth=none" 
result
     describe AUTHRES_AUTH_PASS Authentication-Results: has "auth=pass" 
result
     describe AUTHRES_AUTH_PERMERROR Authentication-Results: has 
"auth=permerror" result
     describe AUTHRES_AUTH_TEMPERROR Authentication-Results: has 
"auth=temperror" result
     header AUTHRES_AUTH_FAIL eval:check_authres_result('auth', 'fail')
     header AUTHRES_AUTH_NONE eval:check_authres_result('auth', 'none')
     header AUTHRES_AUTH_PASS eval:check_authres_result('auth', 'pass')
     header AUTHRES_AUTH_PERMERROR eval:check_authres_result('auth', 
'permerror')
     header AUTHRES_AUTH_TEMPERROR eval:check_authres_result('auth', 
'temperror')
     score AUTHRES_AUTH_FAIL 0.5
     score AUTHRES_AUTH_NONE 0.5
     score AUTHRES_AUTH_PASS -0.5
     score AUTHRES_AUTH_PERMERROR 0.5
     score AUTHRES_AUTH_TEMPERROR 0.5

     describe AUTHRES_DNSWL_NONE Authentication-Results: has "dnswl=none" 
result
     describe AUTHRES_DNSWL_PASS Authentication-Results: has "dnswl=pass" 
result
     describe AUTHRES_DNSWL_PERMERROR Authentication-Results: has 
"dnswl=permerror" result
     describe AUTHRES_DNSWL_TEMPERROR Authentication-Results: has 
"dnswl=temperror" result
     header AUTHRES_DNSWL_NONE eval:check_authres_result('dnswl', 'none')
     header AUTHRES_DNSWL_PASS eval:check_authres_result('dnswl', 'pass')
     header AUTHRES_DNSWL_PERMERROR eval:check_authres_result('dnswl', 
'permerror')
     header AUTHRES_DNSWL_TEMPERROR eval:check_authres_result('dnswl', 
'temperror')
     score AUTHRES_DNSWL_NONE 1.5
     score AUTHRES_DNSWL_PASS -1.5
     score AUTHRES_DNSWL_PERMERROR 0.5
     score AUTHRES_DNSWL_TEMPERROR 0.5

     describe AUTHRES_DOMAINKEYS_FAIL Authentication-Results: has 
"domainkey=fail" result
     describe AUTHRES_DOMAINKEYS_NEUTRAL Authentication-Results: has 
"domainkey=neutral" result
     describe AUTHRES_DOMAINKEYS_NONE Authentication-Results: has 
"domainkey=none" result
     describe AUTHRES_DOMAINKEYS_PASS Authentication-Results: has 
"domainkey=pass" result
     describe AUTHRES_DOMAINKEYS_PERMERROR Authentication-Results: has 
"domainkey=permerror" result
     describe AUTHRES_DOMAINKEYS_POLICY Authentication-Results: has 
"domainkey=policy" result
     describe AUTHRES_DOMAINKEYS_TEMPERROR Authentication-Results: has 
"domainkey=temperror" result
     header AUTHRES_DOMAINKEYS_FAIL 
eval:check_authres_result('domainkeys', 'fail')
     header AUTHRES_DOMAINKEYS_NEUTRAL 
eval:check_authres_result('domainkeys', 'neutral')
     header AUTHRES_DOMAINKEYS_NONE 
eval:check_authres_result('domainkeys', 'none')
     header AUTHRES_DOMAINKEYS_PASS 
eval:check_authres_result('domainkeys', 'pass')
     header AUTHRES_DOMAINKEYS_PERMERROR 
eval:check_authres_result('domainkeys', 'permerror')
     header AUTHRES_DOMAINKEYS_POLICY 
eval:check_authres_result('domainkeys', 'policy')
     header AUTHRES_DOMAINKEYS_TEMPERROR 
eval:check_authres_result('domainkeys', 'temperror')
     score AUTHRES_DOMAINKEYS_FAIL 0.5
     score AUTHRES_DOMAINKEYS_NEUTRAL 0.5
     score AUTHRES_DOMAINKEYS_NONE 0.5
     score AUTHRES_DOMAINKEYS_PASS -0.5
     score AUTHRES_DOMAINKEYS_PERMERROR 0.5
     score AUTHRES_DOMAINKEYS_POLICY 0.5
     score AUTHRES_DOMAINKEYS_TEMPERROR 0.5

     describe AUTHRES_RRVS_FAIL Authentication-Results: has "rrvs=fail" 
result
     describe AUTHRES_RRVS_NONE Authentication-Results: has "rrvs=none" 
result
     describe AUTHRES_RRVS_PASS Authentication-Results: has "rrvs=pass" 
result
     describe AUTHRES_RRVS_PERMERROR Authentication-Results: has 
"rrvs=permerror" result
     describe AUTHRES_RRVS_TEMPERROR Authentication-Results: has 
"rrvs=temperror" result
     describe AUTHRES_RRVS_UNKNOWN Authentication-Results: has 
"rrvs=unknown" result
     header AUTHRES_RRVS_FAIL eval:check_authres_result('rrvs', 'fail')
     header AUTHRES_RRVS_NONE eval:check_authres_result('rrvs', 'none')
     header AUTHRES_RRVS_PASS eval:check_authres_result('rrvs', 'pass')
     header AUTHRES_RRVS_PERMERROR eval:check_authres_result('rrvs', 
'permerror')
     header AUTHRES_RRVS_TEMPERROR eval:check_authres_result('rrvs', 
'temperror')
     header AUTHRES_RRVS_UNKNOWN eval:check_authres_result('rrvs', 
'unknown')
     score AUTHRES_RRVS_FAIL 0.5
     score AUTHRES_RRVS_NONE 0.5
     score AUTHRES_RRVS_PASS -0.5
     score AUTHRES_RRVS_PERMERROR 0.5
     score AUTHRES_RRVS_TEMPERROR 0.5
     score AUTHRES_RRVS_UNKNOWN 0.5

     describe AUTHRES_SENDER_ID_FAIL Authentication-Results: has 
"sender-id=fail" result
     describe AUTHRES_SENDER_ID_HARDFAIL Authentication-Results: has 
"sender-id=hardfail" result
     describe AUTHRES_SENDER_ID_NEUTRAL Authentication-Results: has 
"sender-id=neutral" result
     describe AUTHRES_SENDER_ID_NONE Authentication-Results: has 
"sender-id=none" result
     describe AUTHRES_SENDER_ID_PASS Authentication-Results: has 
"sender-id=pass" result
     describe AUTHRES_SENDER_ID_PERMERROR Authentication-Results: has 
"sender-id=permerror" result
     describe AUTHRES_SENDER_ID_POLICY Authentication-Results: has 
"sender-id=policy" result
     describe AUTHRES_SENDER_ID_SOFTFAIL Authentication-Results: has 
"sender-id=softfail" result
     describe AUTHRES_SENDER_ID_TEMPERROR Authentication-Results: has 
"sender-id=temperror" result
     header AUTHRES_SENDER_ID_FAIL eval:check_authres_result('sender-id', 
'fail')
     header AUTHRES_SENDER_ID_HARDFAIL 
eval:check_authres_result('sender-id', 'hardfail')
     header AUTHRES_SENDER_ID_NEUTRAL 
eval:check_authres_result('sender-id', 'neutral')
     header AUTHRES_SENDER_ID_NONE eval:check_authres_result('sender-id', 
'none')
     header AUTHRES_SENDER_ID_PASS eval:check_authres_result('sender-id', 
'pass')
     header AUTHRES_SENDER_ID_PERMERROR 
eval:check_authres_result('sender-id', 'permerror')
     header AUTHRES_SENDER_ID_POLICY 
eval:check_authres_result('sender-id', 'policy')
     header AUTHRES_SENDER_ID_SOFTFAIL 
eval:check_authres_result('sender-id', 'softfail')
     header AUTHRES_SENDER_ID_TEMPERROR 
eval:check_authres_result('sender-id', 'temperror')
     score AUTHRES_SENDER_ID_FAIL 0.5
     score AUTHRES_SENDER_ID_HARDFAIL 0.5
     score AUTHRES_SENDER_ID_NEUTRAL 0.5
     score AUTHRES_SENDER_ID_NONE 1.1
     score AUTHRES_SENDER_ID_PASS -1.1
     score AUTHRES_SENDER_ID_PERMERROR 0.5
     score AUTHRES_SENDER_ID_POLICY 0.5
     score AUTHRES_SENDER_ID_SOFTFAIL 0.5
     score AUTHRES_SENDER_ID_TEMPERROR 0.5

     describe AUTHRES_SMIME_FAIL Authentication-Results: has "smime=fail" 
result
     describe AUTHRES_SMIME_NEUTRAL Authentication-Results: has 
"smime=neutral" result
     describe AUTHRES_SMIME_NONE Authentication-Results: has "smime=none" 
result
     describe AUTHRES_SMIME_PASS Authentication-Results: has "smime=pass" 
result
     describe AUTHRES_SMIME_PERMERROR Authentication-Results: has 
"smime=permerror" result
     describe AUTHRES_SMIME_POLICY Authentication-Results: has 
"smime=policy" result
     describe AUTHRES_SMIME_TEMPERROR Authentication-Results: has 
"smime=temperror" result
     header AUTHRES_SMIME_FAIL eval:check_authres_result('smime', 'fail')
     header AUTHRES_SMIME_NEUTRAL eval:check_authres_result('smime', 
'neutral')
     header AUTHRES_SMIME_NONE eval:check_authres_result('smime', 'none')
     header AUTHRES_SMIME_PASS eval:check_authres_result('smime', 'pass')
     header AUTHRES_SMIME_PERMERROR eval:check_authres_result('smime', 
'permerror')
     header AUTHRES_SMIME_POLICY eval:check_authres_result('smime', 
'policy')
     header AUTHRES_SMIME_TEMPERROR eval:check_authres_result('smime', 
'temperror')
     score AUTHRES_SMIME_FAIL 0.5
     score AUTHRES_SMIME_NEUTRAL 0.5
     score AUTHRES_SMIME_NONE 0.5
     score AUTHRES_SMIME_PASS -1.5
     score AUTHRES_SMIME_PERMERROR 0.5
     score AUTHRES_SMIME_POLICY 0.5
     score AUTHRES_SMIME_TEMPERROR 0.5
endif

hope it helps others, adjust scores as you need it

above works for me, i just have many more authres_trusted_authserv lines
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.