Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: bandit am 27.11.03 - 14:48:50

Titel: Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: bandit am 27.11.03 - 14:48:50
Ich habe eine Mail-In Datenbank erstellt, die innerhalb von Notes per E-Mail erreichbar ist. Nun möchte ich diese DB so einstellen, dass nur von bestimmten Usern bzw. Mail Adressen in die DB gemailt werden kann (Whitelist).
Eigentlich müsste das doch mit einem einfachen Agenten zu realisieren sein. Weiss jemand wie?
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: klaussal am 27.11.03 - 14:58:03
... kann man das nicht über "regeln" viel einfacher lösen ?
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: Glombi am 27.11.03 - 14:58:21
Du könntest einen "Vor Eingang neuer Mail" Agenten erstellen, der alle reinkommenden Mails löscht, die ungültige Absender haben.

Andreas
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: eknori am 27.11.03 - 14:59:58
Das jeder an die Datenbank mailen kann, wirst du wohl nicht verhindern können  ???

Aber du könntest dich der Regeln bedienen und dort die gültigen absender eintragen; alle anderen wandern gleich in den Papierkorb.

Oder du baust dir einen Agenten "Vor Eingang neuer Mail".

Ulrich

upps, da waren Andreas und Klaus schneller
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: bandit am 27.11.03 - 15:03:59
Das mit dem Agenten habe ich mir so auch schon überlegt. Wie müsste der Agent denn aussehen damit er die eingehenden Mails von bestimmten Absendern nicht löscht und alle anderen schon? Da der Agent ja VOR dem Eingang der Mail abläuft kann die Mail dann überhaupt schon gelöscht werden?
Wo richte ich denn diese Regeln ein?
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: Glombi am 27.11.03 - 15:16:58
Du kannst einen LotusScript Agenten erstellen:

Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
dim doc as NotesDocument
dim nextdoc as NotesDocument

Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
set doc = dc.GetFirstDocument
While not (doc is Nothing)
set nextdoc = dc.GetNextDocument(doc)

if not(doc.From(0) = "Absender OK") then
 call doc.Remove(true)
end if

set doc = nextdoc

Wend


Falls das mit dem "Vor Eingang neuer Mail" nicht geht, kannst Du auch "Nach Eingang neuer Mail" machen.
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: koehlerbv am 27.11.03 - 16:05:33
Code
if not(doc.From(0) = "Absender OK") then
Das würde ich noch ausbauen, um die Sache konfigurierbar machen: Im Setup-Dokument der Mail-in-Datenbank gibt es eine Multivalue-Feld der erlaubten Absender. Dieses dann in ein Variant einlesen und mit ArrayGetIndex auf den Absender prüfen.
Geschickt wäre es vielleicht auch, die unzulässige Mail nicht nur zu löschen, sondern mit entsprechendem Vermerk dem Absender wieder zurück zu schicken.

HTH,
Bernhard
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: Semeaphoros am 27.11.03 - 17:11:16
Statt ArrayGetIndex in diesem Fall auch Contains vom Notes-Item verwendbar (das Item braucht man ja eh im- oder explizit, um die Werte auszulesen)
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: koehlerbv am 27.11.03 - 17:20:08
Wozu sollte man NotesItem denn hier benötigen ? Abgesehen davon ist das natürlich auch eine Variante, erzeugt aber mehr LOC ;-)

Bernhard
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: Semeaphoros am 27.11.03 - 17:24:03
Um die Werte aus dem Feld rauszuholen, ziehst Du NotesItem in jedem Falle an, sei es als GetItemValue oder implizit mit einem

xyz = doc.FeldName

Letzeres heisst ja nicht umsonst "Kurzschreibweise", sprich der Compiler löst das als Aufruf auf das GetItemValue (welches ziemlich sicher das NotesItem anzieht, ist ja schliesslich idR guter OO-Code dahinter - vermutlich) auf, allenfalls auch der Runtimer. Wenns AtRuntime passiert, dann wäre die ShortNotation allerdings ein Performance-Aspekt.
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: bandit am 28.11.03 - 09:03:23
Zunächst vielen Dank für die ganzen Antworten.
Ich habe mir nun einen Agenten mit dem vorgeschalgenen LS Code gemacht aber leider werden die eingehenden Mails von mir nicht gelöscht, egal ob mit "vor eingehender mail" oder "nach eingehender mail".
Als Vergleichswert für das doc.from Feld habe ich den Inhalt des From Feldes von eingegangenen Mails von mir genommen also "CN=Max Muster/O=TEST/C=DE".

Edit: Wenn ich den Agenten manuell starte funktionierts, scheinbar klappt das Auslösen irgendwie nicht.
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: Semeaphoros am 28.11.03 - 10:25:22
Hast Du im Log schon nachgeschaut, ob Du eine Fehlermeldung bekommst? Für NachNeueMail müssen die Mehl-Einstellungen des Unterzeichners des Agenten stimmen, oder man muss mit einer ini-variable das Ueberprüfen der Mehlbox des Unterzeichners unterdrücken, dafür gibt es aber beim Aktivieren des Agenten im Server-Log eine Fehlermeldung.
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: bandit am 28.11.03 - 11:26:52
Wo muss ich denn da genau im Serverlog nachschauen? Ich kenne mich in der Administration leider nicht so gut aus..
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: Semeaphoros am 28.11.03 - 11:29:03
Datei Log.nsf und durch verschiedene Ereignisse (oder so ähnlich) durchkämpfen
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: bandit am 28.11.03 - 11:57:17
Die Datei hab ich schon, nur die Events sind das Problem. Ich weiss nicht wo ich da nachschauen muss.  :-\
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: Semeaphoros am 28.11.03 - 12:14:19
Suche mit der Volltextsuche nach dem Namen des Agenten, und dann innerhalb der gefundenenen Dokumente noch einmal
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: bandit am 28.11.03 - 12:41:32
Die Volltextsuche findet keine Treffer zum Namen bzw. Alias des Agenten.  ???
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: koehlerbv am 28.11.03 - 14:15:57
Stimmt der Server-Name, auf dem der Agent laufen soll ?
Enthält Dein Agent irgendwelche Frontend-Methoden, die er gar nicht mag ?
Poste mal ggf. den ganzen Code ...

Bernhard
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: Don Pasquale am 02.12.03 - 09:34:14
Hmm, ist der Agent signiert ?
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: bandit am 02.12.03 - 10:29:10
Bei einem Agenten der Vor bzw. Nach dem Eingang neuer Mail ausgeführt wird, kann ich doch gar keinen Server einstellen auf dem der Agent laufen soll oder?
Wie signiere ich denn einen Agenten?
Titel: Re:Mails nur von bestimmten Mail Adressen zulassen
Beitrag von: Semeaphoros am 02.12.03 - 11:45:35
Stimmt, bei vor- und nach Zustellungs Agenten wird der Server durch die Mail-Konfiguration des Unterzeichners des Agenten bestimmt (mindestens beim Nach-Zustellungs-Agenten, beim anderen weiss ich nicht auswendig, woher die Konfiguration kommt).

A-Bär: wenn das das Problem ist, sollte beim Einschalten des Agenten oder beim Starten des Servers eine Fehlermeldung im Log erscheinen ..... und das tut es ja offenbar auch nicht.