Gnus development mailing list
 help / color / mirror / Atom feed
From: Kai Grossjohann <kai@emptydomain.de>
Subject: Re: How to use the spam.el package?
Date: Mon, 03 Nov 2003 20:26:32 +0000	[thread overview]
Message-ID: <87u15lryfb.fsf@emptyhost.emptydomain.de> (raw)
In-Reply-To: <4nptg947ta.fsf@lockgroove.bwh.harvard.edu>

Ted Zlatanov <tzz@lifelogs.com> writes:

> On Sat, 01 Nov 2003, kai@emptydomain.de wrote:
>> (setq spam-use-bogofilter-headers t)
>> (setq spam-split-group "INBOX.spam")
>> (setq spam-junk-mailgroups (list "nnimap:INBOX.spam" "nnimap:INBOX.makespam"))
>> (setq gnus-spam-process-newsgroups
>>       '(("^nnimap:INBOX" nil)))
>> (setq gnus-spam-process-destinations
>>       '(("^nnimap:INBOX" "nnimap:INBOX.makespam")))
>> (spam-initialize)
>
> You don't need to explicitly define the spam-process parameter - it's
> nil by default, as one would expect.  Everything else looks fine.

Errm, you mean gnus-spam-process-newsgroups?  Okay, so I can take that
out, I guess.

>> I'm reading mail from a Cyrus server with the following setup:
>> Incoming messages are passed through bogofilter before Cyrus sees
>> them.  There is a cron job which goes through all INBOX.makespam and
>> INBOX.makeham folders for all users and classifies messages found
>> there as spam or ham respectively.
>
> Great.

Heh, I'm somewhat self-satisfied with having achieved this setup.
Goes to show you how much I've been out of touch with doing any real
work...  I even had to ask folks in a (German) newsgroup about the
shell and perl scripts I use for Bogofilter training...

>> So what I want is this: Incoming spam should be split into
>> nnimap:INBOX.spam.  Hitting M-d on a message should send it to the
>> nnimap:INBOX.makespam group, where it will be picked up by the Cron
>> job later.  Also, marking something as ham in a spam group should
>> result in that message being moved to nnimap:INBOX, I guess.
>> (There, nnimap-split-fancy will find it again, and then hopefully
>> won't consider it spam again.)
>
> That's sensible.  Just don't try to split spam from INBOX right back
> into INBOX - that can cause problems.

I must have done a mistake: I tried to tell Bogofilter that messages
in INBOX.makeham aren't spam, then put them back in INBOX.  Then they
were split again as spam.

Oh, wait!

Stupid me: I should be deleting the X-Bogosity header from messages
that were made ham.  Gnahh :-/  *bangs head against wall*

>> Things I found:
>> 
>> * The docs say "First of all, you *must* run the function
>>   `spam-initialize' to autoload `spam.el' and to install the
>>   `spam.el' hooks".  In fact, however, it seems that spam-initialize
>>   should come /last/, not first: its behavior depends on the other
>>   variables being set.
>> 
>>   I like obscure jokes just as well as the next person, but maybe a
>>   hint for the uninitiated would be nice?
>
> The docs are correct.  The behavior of spam-initialize will not be
> affected by any spam.el variables, except for spam-use-stat which adds
> some hooks (the spam-use-stat exception should probably be in the
> manual).

Hm.  Ooops.  But what about spam-install-hooks?  That seems to be set
to something depending on spam-use-foo upon loading spam.el, so if I
call spam-initialize first, then frob spam-use-foo, then it's too
late.  So I'll also have to set spam-install-hooks, right?

[time passes]

D'oh.  spam-install-hooks just arranges for spam-initialize to be
called, which it was already.  So no harm done.

*blush*

>> * I /think/ that spam-split-group should be a naked group name
>>   whereas all the other variables should be fully qualified group
>>   names.  It isn't made clear in the documentation.
>
> You are correct.  I have clarified it.

At least one observation in this message that wasn't wrong.

>> * The format of gnus-spam-process-newsgroups and
>>   gnus-spam-process-destinations isn't made clear, neither in info
>>   nor in C-h v.  I suggest to say something like "this should be a
>>   list of newsgroup specifications.  Each newsgroup specification
>>   has the format (REGEXP PROCESSOR)".
>
>>   I found out what to do by running M-x customize-variable RET and
>>   then looking at the resulting Lisp expression, but why not make it
>>   explicit?
>
> I have added this clarification.  I strongly prefer that users use the
> customize interface, so I don't want to provide code samples for
> setting the variables manually.  If you do, please write them and add
> them to the manual.  I have no problem with that.

Okay.

>> * I wasn't sure that just setting the processor to nil was the right
>>   thing to do, I was just operating on a hunch that it might work.
>>   How about making this explicit, too?
>
> Why?  It makes perfect sense that if you don't explicitly set a
> processor, there won't be one.  I don't want to confuse the users
> more than they need to be :)

Well, spam is being processed by Bogofilter in my case.  Or, put
another way, the processing I do on spam is to move it to INBOX.spam.

Maybe I'm just being too stupid.

>> * I would also appreciate some tutorial kind of advice, like saying
>>   for the following common situation, this is how you set the
>>   variables.  It's difficult to figure out how it all ties together:
>>   you have to read all of the main node on spam.el and /understand/
>>   it, too, if you want to configure things.
>
> Sure.  I welcome any contributions in that direction.  Integration of
> spam.el with the registry plus making the registry work properly in
> all cases are higher on my priority list.

Ah, yes, I should have expected the please-do-it answer ;-)
Sorry that I didn't just do it in the first place, but came here
whining instead.

>> * How do I tell spam.el that messages from nnimap:INBOX.spam and
>>   nnimap:INBOX.makespam don't need to be frobbed further?  I'm
>>   afraid they'll be subjected to gnus-spam-process-destinations...
>
> If the messages in those groups are marked as spam, they will be
> moved to the spam-process-destination whether there is or isn't a
> spam processor.  So don't set a spam-process-destination if you don't
> want one, ditto for the spam-processor.  Is that what you're asking?

I want spam to be moved to INBOX.spam.  But it doesn't make sense
(IMHO) to move messages from INBOX.spam to INBOX.spam.  I see an
infloop lurking there.

But it turns out that I haven't experienced that infloop yet.  Soooo,
there must be something (yet again) I'm missing.

>> * I completely ignored the group parameters thing, even though it
>>   seemed the easiest way to configure stuff.  The reason for doing
>>   so was that I didn't fancy setting the same spam process
>>   destination on all my groups.  (I just switched to a new server
>>   and haven't switched on topics mode, yet.)
>
> Yeah, unfortunately group/topic parameters are incredibly easy and
> convenient for this task, so I'd rather have the user use that than
> write Lisp code.

;-)

Kai



  reply	other threads:[~2003-11-03 20:26 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-01 20:17 Kai Grossjohann
2003-11-03 18:37 ` Ted Zlatanov
2003-11-03 20:26   ` Kai Grossjohann [this message]
2003-11-03 21:20     ` Ted Zlatanov
2003-11-03 22:06       ` Kai Grossjohann
2003-11-04  2:36         ` Ted Zlatanov
2003-11-04 21:39       ` Kai Grossjohann
2003-11-03 20:15 ` Kai Grossjohann
2003-11-03 20:25   ` Ted Zlatanov
2003-11-03 21:04     ` Kai Grossjohann
2003-11-04 20:57       ` Kai Grossjohann

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87u15lryfb.fsf@emptyhost.emptydomain.de \
    --to=kai@emptydomain.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).