Calling Spamd in ACL

jstrzalko

Verified User
Joined
Nov 21, 2004
Messages
38
Spamd

I am trying to figure out how to integrate this into the exim.conf provided by DA. I have worked with Exim extensively on a custom system for a client and it seems the way DA connects to SA (using spamc) seems horribly inefficient when you have the spamd_address option and parse it in acl_check_data instead. This allows support to drop/change/manipulate spam a lot easier while not having to make an intemediary call to spamc. Anyone else feel the same way?

--Josh
 
jstrzalko, you've reached the right guy :) .

I wrote the exim.conf file that Exim uses. When I first wrote it I called SpamAssassin the same way DA did at the time.

But I'd like to start calling SpamBlocker just the way you suggest. Unfortunately I haven't had the time to make the changes.

Can you give me some sample code to integrate? Don't forget it still has to work with the DA implementation of SpamAssassin in the DA control panel, and also to allow the mailbox filtering to work.

Please feel free to respond here or by email (my email address is below, in my sig), but note that I read email much more often than I log on to the forum.

Jeff
 
There will need to be a number of changes in order to accomplish this. Right now each user has their own Spamassassin config file. While this is fine it doesn't necessarily need to be the case since all we need to do is processess spam score threshold, what to do with it, and the white/black lists. These same things could be accomplished using an SQL table or flat file structure and not having a user be able to change the spamassassin configuration file (for their domains).

To do this we need to change the way Exim talks with spamd (using spamd_address) and change the routers to check for:
1. whitelisted/blacklisted address
2. what to do with a spam
3. deliver normally

With each having a condition to lookup the user's individual threshold, changing the subject, etc.

Jeff feel free to PM me as it may be easier to discuss these changes over the phone or via email as I don't think that this forum is the place for it. :)

Josh
 
I don't do PM well; maybe I'm too old ;) .

And while I don't mind conducting open discussion in the forums (I think it helps get good ideas), I can take phone calls if you want to cal me. Or I make phone calls anywhere in the world. Since I use VoIP it's cheap :) .

(I can move this thread into the SpamBlocker3 forum if we're going to continue to discuss it here.)

Please feel free to email me with your telephone number, timezone and best time to call, if you'd like.

As far as changing the way SpamAssassin works, I'm not sure we can take away functionality users are used to.

Most of the settings on the DirectAdmin Spamassassin Setup page are things that can take place after the fact, or by filtering on the email after SpamAssassin is done with it, so I think we can still keep that functionality, perhaps with more filters.

All the settings in DirectAdmin Spam Filter are completely separate from SpamAssassin.

I think between us we can figure it out :) .

Jeff
 
Move it over to SpamBlocker3, it seems the best place for it,or start a new thread there.

We wouldn't need to take away any functionality from the user's only change the way that DA creates those settings on the server so we could access them differently from exim.

Josh
 
I've created a new thread and moved the tail end of the old thread, beginning with your post yesterday, into it.

Please see my PM to you.

Jeff
 
I think the best option is to have DA change the way they handle the Spamassassin Setup functions to write to a mysql table, or to a flat file (mysql is obviously preferred). All features would remain the same, just where the information is stored.

Then change the way the routers are ordered, adding a few and changing a large percentage of them to something like this

### Discard a spam message
discardspam:
driver = manualroute
domains = ${lookup mysql {PURGESPAM}{$value}}
senders = ! ${lookup mysql {WHITELIST}{$value}}
condition = ${if >{$spam_score_int}{${lookup mysql{SPAMTHRESHOLD}{$value}fail}} {yes}{no}}
route_list = "* localhost byname"
transport = devnull
verify = false

Thoughts?

Josh
 
Sorry, but I may be stupider than I look (see my avatar, directly above :) ).

What do you mean by changing a large percentage of them? Which ones?

Please do me the favor of referring to the newest Spamblocker3 beta when showing me where I need to make changes. It can be found at:

http://www.nobaloney.net/downloads

Thanks.

Jeff
 
I hate to say it but all of the routers will have to be rewritten to check for the user's spamassassin settings like my demo one in my previous post.

Josh
 
Back
Top