RE: [Exim] Skip SPAM check for SMTP Auth'd and local sent ma…

Top Page
Delete this message
Reply to this message
Author: Eli
Date:  
To: exim-users
Subject: RE: [Exim] Skip SPAM check for SMTP Auth'd and local sent mail
Just a few things to point out here...

1st - using the +local_domains idea is not a good idea. This will cause
emails sent by remote users TO local domains to be skipped. Also, it would
skip ANY scans, even if just *one* of the recipients is local, since the
DATA section is applied to the message, not applied to the message per
recipient.

2nd - the proper way would be to enforce all your senders to use
authentication (even relay servers should if possible - better than just
trusting an IP address). If you can do that, you can use the "authenticated
= *" check. However...

There's no need to set an acl variable based on the authentication check -
just use it directly since it's sender specific (which the DATA section is,
since you can only have one sender of a message) :D

It'd be as simple as something like this:

        warn    message         = X-Spam-Score: $spam_score
($spam_score_int)
                !authenticated  = *
                spam            = nobody:true


That would only run the spam scan check (and ultimately insert a header) if
the sender is NOT authenticated via SMTP AUTH.

Eli.

-----Original Message-----
From: exim-users-admin@??? [mailto:exim-users-admin@exim.org] On Behalf
Of Bradford Carpenter
Sent: Wednesday, February 04, 2004 3:04 AM
To: Derrick
Cc: exim-users@???
Subject: Re: [Exim] Skip SPAM check for SMTP Auth'd and local sent mail


On Tue, 03 Feb 2004 22:12:30 -0800 (PST), Derrick wrote:

> Is there a way to not check for SPAM on SMTP Authenticated users? And same
> for mail originating local? (i.e. - webmail) I did some searches, couldn't
> find much to help, but maybe I was searching using the wrong words...


You can set a couple of ACL variables in your acl_smtp_rcpt section
where you establish whether the user is local or authenticated.

acl_check_rcpt:

  accept        domains = +local_domains
             set acl_m1 = local


  accept  authenticated = *
             set acl_m2 = auth


Then in your acl_smtp_data section, check the variables as a condition
for running a spam check.

acl_check_data:

  warn   message = X-Spam-Score: $spam_score ($spam_bar)
       condition = ${if or{{eq{$acl_m1}{local}}{eq{$acl_m2}{auth}}}
{no} {yes}}
            spam = nobody:true
  warn   message = X-Spam-Report: $spam_report
       condition = ${if or{{eq{$acl_m1}{local}}{eq{$acl_m2}{auth}}}
{no} {yes}}
            spam = nobody:true


  warn   message = X-Spam-Flag: YES
       condition = ${if or{{eq{$acl_m1}{local}}{eq{$acl_m2}{auth}}}
{no} {yes}}
            spam = nobody


  deny   message = This message scored $spam_score points.
Congratulations!
       condition = ${if or{{eq{$acl_m1}{local}}{eq{$acl_m2}{auth}}}
{no} {yes}}
            spam = nobody:true
       condition = ${if >{$spam_score_int}{50}{1}{0}}


I believe if the mail has multiple recipients, if one of the recipients
is local or authenticated, the spam check will be bypassed for all
recipients of the message, since the data acl is run once per message,
not once per user. Don't know a way around this.

Brad

--

## List details at http://www.exim.org/mailman/listinfo/exim-users Exim
details at http://www.exim.org/ ##