Das Notes Forum
Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: braincrusha am 30.01.04 - 09:05:12
-
Hi,
also unser Notesserver wird gerade extrem überflutet von einer riesigen Welle an Spammails.
Nun platzt langsam unser Mail.Box
Ich will einen Agent schreiben der die ganze Mail.box durchschaut und die Dokumente herauslöschen welche bei dem Feld FailureReason einen bestimmten Wert stehen haben.
Hat irgendjemand ne Idee?? Welche Sprache sollte ich benützen?? Ich hab halt keine Ahnung wie ich ihm sage dass er das dokument löschen soll.
-
Am besten machst Du in der mail.box eine Ansicht mit der Formel
SELECT FailureReason = "xyz"
dann kannst Du dort alles markieren und löschen.
Andreas
-
Hi,
ich würde das mit Script machen. Zuerst alle Dokumente in eine Collection und dann die Dokumente einzeln durchlaufen und das entsprechende Feld prüfen.
Könnte so in etwa aussehen:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim tempdoc As NotesDocument
Set db = session.CurrentDatabase
Set dc = db.AllDocuments
Set doc = dc.GetFirstDocument()
While Not(doc Is Nothing)
Set tempdoc = dc.GetNextDocument(doc)
If doc.FailureReason(0) = "Fehlerursache" Then
Call doc.Remove(True)
End If
Set doc = tempdoc
Wend
End Sub
Axel
-
okay hab beides ausprobiert funktionieren beide.
Hab mich für den Weg mit der Ansicht entschieden bis jetzt *g* und häng schon wieder fest.
Also das Feld das geprüft wird enthält immer den Absender am Anfang und dann die Meldung. Beispiel:
Benutzer hugo (hugo@vow0003.voigtag.de) ist nicht im öffentlichen Adreßbuch aufgeführt
nun soll das Dokument nur in der Ansicht sein wenn dieser Teil ("ist nicht im öffentlichen Adreßbuch aufgeführt") in diesem Feld ist. Hab schon einiges ausprobiert.
"c_1 := "IST NICHT IM ÖFFENTLICHEN";
c_2 := @UpperCase(DeadFailureReason); SELECT
@Contains(c_2; c_1);"
funktioniert aber nicht. Jemand ne Idee?
-
Heisst das Feld wirklich "DeadFailureReason" oder evtl. doch "FailureReason"
-
egal welches ich benütz es funktioniert nicht. Habe es mit beiden schon ausprobiert
-
Sieh mal in den Dokumenteigenschaften nach. Vielleicht ist es ja englisch !?
-
nein steht in deutsch drin. hab ich auch schon nachgeschaut!
-
Hi,
ich hab die SELECT - Formel mal getestet. Vom Prinziop her funktioniert sie.
Ich hab sie auch mal so vereinfacht:
SELECT @Contains(@UpperCase(DeadFailureReason); "IST NICHT IM ÖFFENTLICHEN")
Versuch's mal damit.
Axel
-
Funktioniert leider auch nicht :(
Egal ob mit Dead oder ohne!
-
Das gibt's ja gar nicht!
Mach mal einen Screenshot von den Eigenschaften des Dokuments, an dem wir sehen können, welches Feld es ist und was da drin steht.
(Vielleicht fehlt ja IsSummary oder so was).
Andreas
-
Hi,
ich hab das mal in unserer Mail.box probiert und bin zu folgendem Ergebnis gekommen:
In der Select - Formel muss es heissen ÖFFENTLICHEM und nicht ÖFFENTLICHEN
Dann musst du eine neuen Ansicht machen, die auf einer leeren Gestaltung aufsetzt und nicht auf der Ansicht Mail.
Die Select-Formel muss so aussehen:
SELECT @Contains(@UpperCase(DeadFailureReason); "IST NICHT IM ÖFFENTLICHEM") | @Contains(@UpperCase(FailureReason); "IST NICHT IM ÖFFENTLICHEM")
Das Feld DeadFailureReason ist nur in DEAD-Mails enthalten. Bei Mails mit dem Status HOLD heißt das Feld FailureReason.
Axel
-
Sorry auch das funktioniert bei mir nicht :(
:'(
ich verzweifel gleich.... hardcopies kommen in ca. 30 Minuten hab gleich ne Besprechung
-
Also mein Fehler lag irgendwo im Agent nachdem ich ihn umgeschrieben habe funktioniert alles ;D
Tut mir leid Jungs. Danke aber vielmals für jede Hilfe.
-
Also mein Fehler lag irgendwo im Agent nachdem ich ihn umgeschrieben habe funktioniert alles ;D
Ähhmm, wieso Agent. du hast doch geschrieben, dass du es über eine Ansicht regelst.
Aber, sei's drum. Hauptsache es funktioniert.
Axel