TN wrote:
> Hi all,
> It seems that almost everyone wants spamassasin before SMTP, but I need help in setting it up after delivery.
> At the moment, I am using Exim4.6x, with SA 3.1.7, and it's default setup is to do the filtering at the ACL stage in Exim. We find this a bit tedious since users sending email have to endure quite a delay when sending, while SA does its work.....we would much prefer it to accept the delivery, so that the user isn't waiting for their email client to finish up. We don't reject spam anyway, we're just happy to rewrite the subject, mark the email as spam and then let the email client rules sort the ham from spam based on those 2 marks - obviously we don't have a heavily laden email link so we can afford to accept spam and filter it after SMTP.
> Alternatively, can it be configured to not do ANY filtering on authenticated senders, but process every other incoming email at ACL stage ? This would probably be best.
> How can I do either of these with Exim & SA ?
> thanks
> T


This probably belongs on the Exim-users list, rather than the
spamassassin list, but here goes...

It's pretty easy... In your rcpt acl, set a variable for your
relay_from_hosts and authenticated users. Then, in the data acl, accept
the message if the variable is set before you send the message to
spamd. I also bypass spamd for messages from user-approved senders.


hosts = +relay_from_hosts
add_header = X-ANTISPAM: Message sent from an accepted
end-user host or network
set acl_m_allow = 1
control = submission

authenticated = *
add_header = X-ANTISPAM: Message sent from an authenticated
set acl_m_allow = 1
control = submission

condition = ${if eq{${lookup mysql{USER_ACL}}}{allow}{1}{0}}
set acl_m_allow = 1
add_header = X-ANTISPAM-SKIPPED: Sender in user's allowed
senders list


warn condition = ${if !={$acl_m_allow}{1}}
spam = global:true
add_header = X-SPAM-SCORE: $spam_score\nX-SPAM-REPORT:

Troy Settle
Pulaski Networks