Hi Matt, Thanks a lot for your clarifications. Everything is clearer now :)
ddaas Matt Kettler wrote: > ddaasd wrote: > >>Hi, >>I have a problem with SpamAssassin. I would appreciate if someone could >>help me. >> >> My setup is: >> >>I’ve upgraded to SpamAssassin version 3.0.3 running on Perl version >>5.8.0. I am using in conjunction with spamass-milter - Version 0.3.0 and >>Sendmail 8.12.11. The OS is RHEL 3. > > <snip> > >>1) It seams that my customized scores from >>/etc/mail/spamassasssin/local.cf don’t work. > > > > Did you restart spamd after editing this file? In order to avoid wasting CPU > time, spamd only reads /etc/mail/spamassassin/*.cf when it starts up. It only > reads user_prefs files when it's scanning a message. > > The spamassassin command line on the other hand, parses everything from > scratch > as it's a new instance. > >>The problem is that DEAR_SOMETHING, DEAR_FRIEND etc have no effect as >>they weren’t there. Is this a parse error or I miss something? How can I >>customize my score for different tests? >> >> >>2 ) The result of #spamassasin -d --lint: >> >> Net::DNS version is 0.31, but need 0.34dnsavailable-1 at >>/usr/lib/perl5/vendor_perl/5.8.0/Mail/SpamAssassin/Dns.pm line 1230. >> >> What is this DNS? I think it has nothing to do with BIND…. Should I >>upgrade something? > > > Erm, It's DNS.. Domain Name System.. It's how names get resolved to IP > addresses, a very fundamental basic of the Internet. > > SA uses a DNS module to do various RBL lookups. If you don't want to bother > with > those rules you can ignore these warnings, otherwise you should try to get a > newer version of the Net::DNS perl module. > > >> >>3) I can’t use user_prefs from /home/user/.spamassassin/user_prefs >> >> >> >>From the logs I see that SpamAssassin wants to write/read from >> /root/.spamassassin/user_prefs. Why root? >> >>I found out that the problem is that nobody has no home directory. I >>understand that. But when I run SA as root it reads from >>/root/.spamassassin/user_prefs. Shoudn’t SA read the user_prefs file of >>the recipient? > > > No, it shouldn't use the recipient automatically. > > Consider the following: > > 1) SpamAssassin doesn't always know who the recipient is, as it can only guess > based on the To: header. However, what about a message that's To: > users@spamassassin.apache.org but was remailed to you by the list? There's not > always header saying who the recipient is, since the list effectively remails > it > to you as a Bcc. > > 2) There might be multiple recipients (think Cc:, etc). > > 3) The recipient might not have an account on the local box (think relaying > mailserver, or even outbound mail you sent) > > > SpamAssassin uses the userid that *executes* it. > > Spamd uses the userid that executed spamc, or the user passed to the -u > command > line of either app. > > If it finds it's going to scan mail as root, it falls back to nobody for > safety. > > > >>Isn’t this the point here, to customize for every recipient different >>rules? So, why is SA stucked to /root/.spamassassin/user_prefs? > > > Because that's who called SA. > >> >>How can I customize rules for every user? > > > Ditch spamass-milter. You generally can't do this with a MTA layer filter. > Instead you'll want to do it at the MDA layer (i.e. procmail)and pass the > envelope recipient to -u. Some milters might be able to do this, but they > often > run into the "what to do when there's multiple recipients for the same > message" > problem. > > There's drawbacks and advantages to each different layer of calling SA, so > while > a milter has several advantages, per-user customization is one of it's > weaknesses. > > Some generalities about the trade-offs of calling SA at different parts of the > mail chain. Yes there's some exceptions and variation among tools, but baring > some considerable coding cleverness, these are the limits of a straightforward > implementation at a given layer: > > 1) smtp-time in the MTA: (ie: milters, qmail-scanner, etc) > +can reject (properly) > +scanning is done once per message not per recipient > -inbound mail rate must be limited by a number of processes, or else system > load > will explode if a rush of mail comes in all at once. (most do this using spamd > which has built-in child limiting) > -usually have very limited per-user flexibility > > 2) mta-queue layer (mailscanner is the only one I'm aware of): > +inbound mail can be queued quickly without waiting for SA to scan it. > +scanning can done per-message or per recipient (with some MTA queuing > options) > +bursts of high volume have little impact on system load > -sustained high volume can cause mail queue to get large (Mailscanner does > shift > to emergency mode to alleviate this, but that bypasses scanning) > -somewhat limited per-user flexibility (better than with milter, but still one > SA user_prefs) > -can't reject, can only generate post-delivery bounces (bad idea), quarantine, > delete, or deliver. > > 3) MDA layer (ie: procmail) > +high degree of per-user flexibility, as passing -u to spamc allows separate > user_prefs > -multi-recipient messages must be re-scanned > -can't reject... > > 4) MUA layer (ie: called from within kmail) > +complete end-user control of scanning > -isn't site-wide, must be installed on each client machine > -no centralized scanner, thus no central statistics > -messages must be downloaded to client before they can be scanned. > -can't reject... > >