Bogofilter Digest, Vol 46, Issue 3

Matthias Andree matthias.andree at gmx.de
Thu Mar 20 18:02:16 CET 2008


'Stefan Geißler' schrieb:
> bogofilter-request at bogofilter.org wrote:
>> Send Bogofilter mailing list submissions to
>> 	bogofilter at bogofilter.org
>>
>> To subscribe or unsubscribe via the World Wide Web, visit
>> 	http://www.bogofilter.org/mailman/listinfo/bogofilter
>> or, via email, send a message with subject or body 'help' to
>> 	bogofilter-request at bogofilter.org
>>
>> You can reach the person managing the list at
>> 	bogofilter-owner at bogofilter.org
>>
>> When replying, please edit your Subject line so it is more specific
>> than "Re: Contents of Bogofilter digest..."
>>
>>
>> Today's Topics:
>>
>>    1. Re: Trouble with training (Matthias Andree)
>>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Thu, 20 Mar 2008 12:19:02 +0100
>> From: Matthias Andree <matthias.andree at gmx.de>
>> Subject: Re: Trouble with training
>> To: bogofilter at bogofilter.org
>> Message-ID: <20080320111902.GA8773 at merlin.emma.line.org>
>> Content-Type: text/plain; charset=iso-8859-1
>>
>> On Wed, 19 Mar 2008, 'Stefan Gei?ler' wrote:
>>
>>> Hi,
>>>
>>> I have a problem with training the bogofilter. I use a PHP script. This 
>>> script adds head and body of an email into a file and passes it as 
>>> parameter for training to the filter.
>>> I use following functions:
>>>
>>> 1.) Retrieve the email header:
>>> function getplainheader()
>>> {
>>>   return 
>>> imap_fetchheader($this->rm_mailbox,$this->rm_currentmessage,FT_UID|FT_INTERNAL|FT_PREFETCHTEXT 
>>> );
>>> }
>>>
>>> 2.) Retrieve the mail body:
>>> function dump_body2()
>>> {
>>>    return 
>>> imap_body($this->rm_mailbox,$this->rm_currentmessage,FT_UID|FT_INTERNAL);
>>> }
>>>
>>> Then I do following:
>>> function evaluate_bogospam($rcmail )
>>> {
>>>      $mailtext = $rcmail->getplainheader();
>>>      $mailtext .= $rcmail->dump_body2();
>>>
>>>      if( trim( $mailtext ) != "" )
>>>      {
>>>          $filename = 
>>> "/home/wwwdev/public_html/develope/receivemail/mailbody";
>>>          $fp = @fopen( $filename, "w" );
>>>          @fputs( $fp, $mailtext );
>>>          @fclose( $fp );
>>>
>>>          $cmd = "bogofilter -T -d /home/wwwdev/public_html/local -I 
>>> ".$filename;
>>>
>>>          exec( $cmd, $ausgabe2, $returnvar );
>>>
>>>          echo "Bogo Filter return value : ".$returnvar . "   :   " . 
>>> $ausgabe2[0]."<br>";
>>>      }
>>> }
>>>
>>> The problem is, that I get in bogosity an "unknown" while the test 
>>> function above gives me a clear "spam". The related mail was trained 
>>> before in the same way as shown above.
>> Missing the "test function above" and not knowing PHP much (lack of
>> interest and too many security loopholes in deployment), but taking .=
>> for a string concatenation operator:
>>
>> Does $mailtext contain the separating blank line between header and
>> body? That's crucial, since bogofilter treats headers and body
>> separately.
>>
> 
> Good point. I test this!
> 

Please DO NOT respond to digests. If your software is too dense to take 
digests apart, read the regular version of the list.


-- 
Matthias Andree

Life is what happens to you while you're busy making other plans.
   						-- John Lennon, 1980



More information about the Bogofilter mailing list