It's none of my business, but here's a suggestion for more work for somebody. :-)
The idea behind the dspam plugin -- watching things move from folder to folder -- seems very, very clever to me. I wonder if it might have wider applicability, even if we can't see what it is today? Taking account some of the performance concerns discussed way, way back, it still seems like a good idea to separate out the watching part from the processing part.
What if there were a generic "movewatcher" plugin which:
-- observed movements from one folder to another
-- configured with some kind of list or regexp or something for the source folders which were interesting/uninteresting (e.g., "SPAM") and likewise for the target folders (e.g., "Trash")
-- configured for some list of email header values to log
-- configured for some place/way to log those header values
-- configured for some format for logging with maybe %-escapes for interesting information (e.g., "%u" means the userid, "%s" means the source folder name, "%t" means the target folder name, "%hFoo" means the value of header "Foo", "%HFoo" means the string "Foo: " followed by the value of header "Foo").
Assuming everything interesting you would want to process is available in one or more headers (in keeping with the Postmaster Code of Condut Rule #2c: Thou shalt not look at content :-), you could log everything interesting to some flat file (or FIFO) and write a completely independent program to process that log.
For the particular case of dspam retraining, you're all good if you have the dspam signature in the headers. (I don't know how you end up without that except during transition to dspam, so I'm not worried about retraining from the raw message.)
bill-dovecot@carpenter.ORG (WJCarpenter) PGP 0x91865119 38 95 1B 69 C9 C6 3D 25 73 46 32 04 69 D6 ED F3