Autor Thema: Spam Filter  (Gelesen 6265 mal)

Offline HartiMcFly

  • Aktives Mitglied
  • ***
  • Beiträge: 192
Spam Filter
« am: 07.08.06 - 11:56:56 »
Hallo,

ich habe einen Agenten, der mir "Spam Mails" in einen seperaten Ordner verschiebt. Es läuft soweit alles einwandfrei. Leider bekomme ich von einer Person Mails, die ebenfalls im Spam landen, dieses aber nicht dürfen.

Kann ich in meinem Script irgendwo eine Ausnahme für eine Mail Adresse einbauen. Quasi soll diese Mail Adresse dann nicht von dem Agenten angefast werden.

Ich hoffe ihr könnt mir helfen.
Hier mal mein Code.

Danke Patrick

Sub Initialize
   Dim Sitzung As New NotesSession
   Dim Inhaltsliste As Variant
   Dim Inhalte List As String
   Dim mail As NotesDocument
   Dim datenbank As NotesDatabase
   
   Set Sitzung = New NotesSession
   Set mail = Sitzung.DocumentContext
   Set datenbank = Sitzung.CurrentDatabase
   
   If mail.hasitem("X_Spam_Status") Then
      Inhaltsliste = Evaluate({@explode(@ReplaceSubstring("}&mail.X_Spam_Status(0) & {"; " "; " ") ;" ")})
      
      Forall param In Inhaltsliste
         Inhalte (Strleft(param, "=")) = Strright(param, "=")
      End Forall
      
      If Val(Inhalte ("score")) >= 4.8 Then
         Call datenbank.EnableFolder("Spam")
         Call mail.PutInFolder( "Spam" )
         Call mail.RemoveFromFolder("($Inbox)")
      End If
      
   End If
End Sub

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Spam Filter
« Antwort #1 am: 07.08.06 - 12:25:13 »
Du setzt an der falschen Stelle an.

Da ist das Kind ja schon in den Brunnen gefallen. Ich würde bei der Spam Erkennungs SW nachschauen, warum die den Score für diese Person auf über 4.8 setzt.

Grundsätzlich kannst du natürlich noch eine Klammer außenrum machen und
if mail.From(0) <> "Benutzername"
mit einbauen aber das wird je mehr Ausnahmen du machen willst um so aufwändiger. Wenn schon dann solltest du dir da eine Liste mit einbauen und auf ist nicht in Liste enthalten abfragen. Dann kann man das wenigstens erweitern.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline HartiMcFly

  • Aktives Mitglied
  • ***
  • Beiträge: 192
Re: Spam Filter
« Antwort #2 am: 07.08.06 - 12:27:58 »
Hallo Thomas,

kannst du mir dass bitte einmal mit beispiel@test.de in meinen Code ein bauen?
Ich sehe zur Zeit den Wald vor lauter Bäumen nicht mehr.

Danke Patrick


Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Spam Filter
« Antwort #3 am: 07.08.06 - 13:02:22 »
Sei mir nicht böse aber das müsstest du eigentlich alleine hinbringen.

Schließlich hast du den Befehl ja schon und musst ihn nur noch an der richtigen Stelle einbauen. Und die sollte mit etwas logischer Überlegung ganz einfach zu finden sein.
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline HartiMcFly

  • Aktives Mitglied
  • ***
  • Beiträge: 192
Re: Spam Filter
« Antwort #4 am: 09.08.06 - 07:10:32 »
Hallo Thomas,

ich habe es jetzt folgendermaßen eingebaut, leider zeigt es so keine Wirkung. Kannst du nocheinmal drüber schauen?

Danke Patrick

Sub Initialize
   Dim Sitzung As New NotesSession
   Dim Inhaltsliste As Variant
   Dim Inhalte List As String
   Dim mail As NotesDocument
   Dim datenbank As NotesDatabase
   
   Set Sitzung = New NotesSession
   Set mail = Sitzung.DocumentContext
   Set datenbank = Sitzung.CurrentDatabase
   
   If mail.from(0) <> "Beispiel@test.com" Then
      
      If mail.hasitem("X_Spam_Status") Then
         Inhaltsliste = Evaluate({@explode(@ReplaceSubstring("}&mail.X_Spam_Status(0) & {"; " "; " ") ;" ")})
         
         Forall param In Inhaltsliste
            Inhalte (Strleft(param, "=")) = Strright(param, "=")
         End Forall
         
         If Val(Inhalte ("score")) >= 4.8 Then
            Call datenbank.EnableFolder("Spam")
            Call mail.PutInFolder( "Spam" )
            Call mail.RemoveFromFolder("($Inbox)")
         End If
      End If
   End If
   
End Sub

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Spam Filter
« Antwort #5 am: 11.08.06 - 08:41:36 »
Schau dir mail mit dem Eigenschafts Fenster die Adten die im From Feld der Mail stehen genauer an. Die Prüfung gegen <> prüft nur ob exakt dieser Wert drinsteht.
Mittlerweile steht meistens aber noch irgendwas anderes drin wie zum Beispiel:
Thisismyname <myname@irgendwo.de>
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline HartiMcFly

  • Aktives Mitglied
  • ***
  • Beiträge: 192
Re: Spam Filter
« Antwort #6 am: 11.08.06 - 12:16:07 »
Also muß es quasi so aussehen?

If mail.from(0) <> "thisismyname <Beispiel@test.com>" Then

so Richtig??

Danke Patrick

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Spam Filter
« Antwort #7 am: 11.08.06 - 12:22:10 »
Nein - Du musst nach einem Teilstring suchen:

If Instr (docMail.From (0), "beispiel@test.com") > 0 then ....

Bernhard

Offline HartiMcFly

  • Aktives Mitglied
  • ***
  • Beiträge: 192
Re: Spam Filter
« Antwort #8 am: 11.08.06 - 12:31:56 »
Danke Patrick


Offline HartiMcFly

  • Aktives Mitglied
  • ***
  • Beiträge: 192
Re: Spam Filter
« Antwort #9 am: 14.08.06 - 07:12:04 »
Nachdem ich die Suche nach einem Teilstring eingebaut habe, sieht es so aus.

Sub Initialize
   Dim Sitzung As New NotesSession
   Dim Inhaltsliste As Variant
   Dim Inhalte List As String
   Dim mail As NotesDocument
   Dim datenbank As NotesDatabase
   
   Set Sitzung = New NotesSession
   Set mail = Sitzung.DocumentContext
   Set datenbank = Sitzung.CurrentDatabase
   
   If Instr (docMail.From (0), "Beispiel@Beispiel.de") >0  Then
      
      If mail.hasitem("X_Spam_Status") Then
         Inhaltsliste = Evaluate({@explode(@ReplaceSubstring("}&mail.X_Spam_Status(0) & {"; " "; " ") ;" ")})
         
         Forall param In Inhaltsliste
            Inhalte (Strleft(param, "=")) = Strright(param, "=")
         End Forall
         
         If Val(Inhalte ("score")) >= 4.8 Then
            Call datenbank.EnableFolder("Spam")
            Call mail.PutInFolder( "Spam" )
            Call mail.RemoveFromFolder("($Inbox)")
         End If
      End If
   End If
   
End Sub


Nun Filtert er gar nichts mehr heraus, heißt also die Spam Mails landen wieder ganz normal im Eingang.

Könnt ihr bitte nochmals drüber schauen?

Danke

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Spam Filter
« Antwort #10 am: 14.08.06 - 09:00:59 »
Jetzt werden ja auch nur noch die Mails von "Beispiel@beispiel.com" in die Prüfung einbezogen ...

Offline HartiMcFly

  • Aktives Mitglied
  • ***
  • Beiträge: 192
Re: Spam Filter
« Antwort #11 am: 14.08.06 - 09:39:58 »
Hallo,

es ist doch aber genau der Befehl, den du mir 2 Antworten weiter oben genannt hast, oder bin ich jetzt ganz blind?

Kannst du mir bitte sagen wie es richtig lauten müßte?

Wäre echt nett. Danke

klaussal

  • Gast
Re: Spam Filter
« Antwort #12 am: 14.08.06 - 09:42:50 »
Zitat
kannst du mir dass bitte einmal mit beispiel@test.de in meinen Code ein bauen?

Bernhard hat nur gemacht, was DU gewollt hast...

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Spam Filter
« Antwort #13 am: 14.08.06 - 09:44:56 »
Die Instr-Funktion ist in der DesignerHelp ausreichend dokumentiert. Und mit der Logik musst Du wirklich allein klar kommen, sonst hat das keinen Zweck.

Bernhard

Offline HartiMcFly

  • Aktives Mitglied
  • ***
  • Beiträge: 192
Re: Spam Filter
« Antwort #14 am: 14.08.06 - 10:44:28 »
Ich finde den Fehler nicht wirklich, kannst du mir noch etwas mehr auf die Sprünge helfen??
Ich weiß, ich bin schon nervig

Patrick

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: Spam Filter
« Antwort #15 am: 14.08.06 - 11:44:10 »
Ich habe den Thread nur kurz überflogen, aber wenn ich dich richtig verstehe, willst du eine bestimmte Adresse von der "Spam-Bearbeitung" ausschließen.


Dann müsste das so aussehen:

If Instr (docMail.From (0), "Beispiel@Beispiel.de") = 0  Then

  'Hier wird weiter geprüft.

End If

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

klaussal

  • Gast
Re: Spam Filter
« Antwort #16 am: 14.08.06 - 11:56:13 »
Zitat
Condition        Return value
string1 is the empty string ("")   0

Müsste doch > 0 heissen....

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Spam Filter
« Antwort #17 am: 14.08.06 - 12:01:27 »
Nein. Ist die Mailadresse enthalten, wird dann ja in den nachfolgenden Zweig geleitet, und ist sie nicht enthalten, wird überhaupt nichts weiter gemacht.

Bernhard

Offline Thomas Schulte

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: Spam Filter
« Antwort #18 am: 14.08.06 - 12:01:51 »
Nein Klaus das ist falsch. Dieser Befehl liefert 0 als Wert zurück, bzw den Begin Wert wenn string2 leer ist. Was bei NULL Werten passiert ist in diesem Fall ein besonderes Kapitel.

Aber insgesamt ist das wieder so ein Fall von Herr vergib ihnen denn sie wissen nicht was sie tun.

Und ein klassisches Beispiel dafür, das es eben nichts nützt jemanden mit Code zu versorgen wenn grundlegende Mechanismen der Programmierung nicht verstanden worden sind.

Patrick, natürlich filtert er jetzt gar nichts mehr. Schließlich hast du ihm gesagt, das er nur noch dann auf den Filter überpüfen soll, wenn er deinen String in docMail.From findet. > 0 bedeutet, das es einen String gibt. Wie Axel schon gesagt hat muss man gegen = 0 prüfen, um das in der Form wie du es vorhast zu machen. Allerdings ist das etwas wo du mit lesen der Online Hilfe und einem Minimum an logischer Überlegung von selber hättest draufkommen können (müssen).
« Letzte Änderung: 14.08.06 - 12:18:23 von Thomas Schulte »
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

Offline HartiMcFly

  • Aktives Mitglied
  • ***
  • Beiträge: 192
Re: Spam Filter
« Antwort #19 am: 14.08.06 - 12:04:35 »
Trotzdem allerbesten Dank für Eure Hilfe.

Gibt es vernünftige Internetseite wo man sich in Lotus Script einlesen kann?
Oder etwa Tutorials?

Danke Patrick

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz