Johannes Berg wrote: > On Sat, 2007-09-29 at 12:44 +0200, Lars Stavholm wrote: >> I'm trying to do a rewrite of the dspam_plugin for dovecot 1.1b1. > > Cool. I never imagined that the plugin would find such wide-spread > use :)
Well, it's only me, don't know if anyone else uses it. Still, I think it's a brilliant idea. Doesn't get any more user friendly. >> How can I retrieve the full unix path for a specific mail? >> >> The original code uses mail_get_first_header() to retrieve the >> signature header. I need something like mail_get_mail_file_path(&path) >> which I then could pass on to dspam. Is there some such function >> available? > > I don't think you can since mail might be stored in any kind of format > like mbox, dbox, ... Only in maildir would this be possible. You can OK, obviously I'm using Maildir format, but let's not restrict the functionality to that fact. > probably somehow get the raw text of a message though, but I don't know > off-hand, and then write it to a temporary file. In any case, I suggest There you go, that's my solution then, should work with all storage formats. > doing that only when no signature is available, and I still don't see > how you would end up with mails w/o signature at all except maybe during > conversion to a new dspam installation. Who said anything about signatures not being available? As far as I can tell from my tests, the signature's are picked up nicely by the dspam plugin. However, I'm used to a dspam setup where TrainPristine=on, and the retraining/reclassification requires pristine mail-sources, without the X-DSPAM-... stuff, including the signature. So, basically, I would read the mail in error, be it spam or ham, and pipe it to the dspam client for retraining/reclassification. The --user option of dspam is used to point dspam to the correct user (since we don't have a signature). I saw some mail_get_istream() or similar, that seems to be a way to open up some sort of byte stream reading the mail contents. That might be what I'm looking for. BTW, I would like to keep the previous functionality with the dspam plugin using signatures. In order to do that I need to be able to set dspam plugin specific options somwhow. Any idea? Cheers /Lars
