Testmails speichern

Top  Previous  Next

Weitere Möglichkeiten > Testmails speichern

 

Während der Entwicklungsphase eines neuen Projektes ist es hilfreich die Klassifikation im TextTransformer-Debugger schrittweise testen zu können, falls sie nicht korrekt war.

 

Das Projekt SaveTests.ttp enthält Code, der dafür sorgt, die Texte der E-Mails in verschiedene Verzeichnisse geschrieben werden, je nachdem, ob es indifferente Mails waren oder Spam oder Nicht-Spam.

 

Das Projekt setzt voraus, dass es auf der Festplatte einen Ordner mit folgender Struktur gibt:

 

..\impfilter\Spam

..\impfilter\NonSpam

..\impfilter\Indifferent

..\impfilter\OnError  // für CopyTextToDisk in NonFree

 

Das impfilter-Verzeichnis ist entweder, wie im Projekt erwartet direkt auf den Laufwerk C: zu erstellen oder der Pfad muss im Projekt angepasst werden.

 

{{

str sTestDir = "C:\\impfilter";   <- anpassen 

str sTestFile;

int iResult = 0;

}}

SpamAndNonSpam[iResult]

{{

out << 0;  // test only

 

switch(iResult)

{

  case 1:

  sTestDir += "\\NonSpam";      

  break;

  case 0:

  sTestDir += "\\Indifferent"; 

  break;

  case -1:

  sTestDir += "\\Spam";       

  break;

}

 

sTestFile = append_path(sTestDir, ExtraParam() + ".txt");

 

if(exists(sTestDir)) 

{

   RedirectOutput(sTestFile);

   out << xState.lp_str();   // text, der von der letzten Produjtion erkannt wurde

   //out << xState.text(0);  // in der freien Version des TextTransformer nicht erlaubt

   //ResetOutput();

}   

}}

 

Das Projekt beeinträchtigt die Spamihilator Filter nicht, da immer der Wert 0 für indifferente Mails zurückgegeben wird. Aber die Mail werden so in die Verzeichnisse sortiert, wie sie klassifiziert würden, wenn iResult statt 0 zurückgegeben würde.

iResult wird hier berechnet wie im Projekt SpamAndNonSpam. Die Startregel von SpamAndNonSpam wird hier als Unterregel aufgerufen. Das ist ein Trick, um den gesamten Mailtext mit xState.lp_str() ( -> siehe Hilfe zum TextTransformer) ausgeben zu können. Diese Funktion darf in der freien Version des TextTransformers verwendet werden. im Unterschied zur text-Funktion die sich sonst anböte.

 

Im Projekt NonFree ist ähnlicher Code als Funktion CopyTextToDisk eingebaut. Dort werden auch Mails gespeichert, bei denen ein Parserfehler auftrat.