Beiträge von CarstenH

    Hallo Els,


    in einem ähnlich gelagertem Fall bei einem Kunden (hier ging es zwar um Fax- und SMS-Empfänger aber ebenfalls um das Problem einer zu großen Teilnehmerliste bei gleichzeitig angebundenem externen System, das nur das SendTo-Feld auswerten konnte) bestand der Workaround aus zwei Schritten:


    1) die Verwendung (oder einmalige Erstellung einer zusätzlichen) verkürzten Alias-Adresse für alle Empfänger;

    2) die Erstellung einer Gruppe mit diesen Adressen je Vorgang (die vor dem Versenden natürlich aufgelöst wird).


    Die Gruppe dient genaugenommen nur der Erleichterung bei der Kontrolle, da man so die tatsächliche Größe des Namensfelds relativ simpel im Auge behalten und die Gruppenmitglieder in der verkürzten Fassung und die Real-Namen in einer Liste zum Abhaken nebeneinander anzeigen kann, technisch notwendig ist die Gruppe ansonsten nicht, sie wird ja vor dem Versand auf jeden Fall ausgepackt.


    Die verkürzten Alias-Adressen sind hier schon etwas anspruchsvoller, ohne weitere Kenntnis des Systems, der Anzahl der Nutzer insgesamt oder der Art der Eingeladenen (intern, extern oder mixed) ist es schwer Tipps zu geben, daher mal allgemein.


    a) Notes-Adressen lassen sich i.d.R. sehr gut verkürzen, so wird bei voller Funktionalität z.B. aus:

    Vorname Name/Berlin/MyCompany @ MYCOMPANY (CN=Vorname Name/OU=Berlin/O=MyCompany @ MYCOMPANY)

    Vorname Name @ MYCOMPANY


    Voller, hierarchischer Name= 50 Byte, Verkürzter Name=25 Byte - Einsparung im Beispiel 25 Byte je Person (ca. 50% = Verdopplung der möglichen Empfängeranzahl).


    Wohlgemerkt - der Kalender expandiert in dieser Form NICHT automatisch den Namen und innerhalb von Notes funktioniert trotzdem alles wie immer.


    Auch das ominöse externe Tool spielt hier eine, wenn auch nachgelagerte, Rolle: werden die Einladungen z.B. erst nach MIME konvertiert müssen weitere Überlegungen/Tests her um den zur Verfügung stehenden Platz und die Methoden auszuloten. So sind weitere Tools wie iQ-Suite und Co. gern hilfreich wenn es um automatische Anpassungen von Mails auf Serverebene geht. Wie gesagt - das Thema wird schnell sehr speziell.


    Ich hoffe, ich konnte einen Ansatz zur Problemlösung liefern.

    Frohe Ostern

    Carsten

    Das sind eigentlich zwei Themen:


    1) Programmatisch einen Link-Hotspot erzeugen.

    2) Einen Dateinamen in eine zulässige (und funktionierende) URL konvertieren.


    zu 1)

    In Formelsprache kenne ich nichts, was du hier verwenden kannst.

    Mit Script kann man schon einiges hinbekommen, allerdings befinden wir uns hier im Richtext-Umfeld wo Änderungen oft erst nach einem Zwischenspeichern und neu Öffnen sichtbar werden. Eine funktionierende Basis habe ich bei Atnotes gefunden, das würde ich mit einem Datei-Dialog kombinieren in dem der Nutzer eine Datei für den Link-Hotspot auswählen kann. Allerdings müssen Pfad+Dateiname noch so angepasst werden, dass sie als Link (im Browser) funktionieren.


    Quelle: URL-Link per Script erstellen? (atnotes.de)


    zu 2)

    In Formelsprache kann man es mit @URLEncode versuchen.

    Mit Script könnte man, wenn man ohne Evaluate arbeitet, die Sonderzeichen escapen. Hier habe ich auch eine auf den ersten Blick passende Funktion gefunden die nach ungültigen Zeichen (" ""#%&/:;<=>?@[]^`{|}~+") im übergebenen Dateinamen sucht und diese escaped. Kann man bei Bedarf noch weiter ausbauen.


    Quelle: URL Escape and Unescape in LotusScript (techtarget.com)


    HTH

    Carsten

    Der einzige Tipp, den ich Anwendern im Zusammenhang mit Dateinamen (Ordnern) und Passwörtern immer wieder gebe:

    Benutzt die Buchstaben des Alphabets und Zahlen aber nach Möglichkeit keine Umlaute, Leerzeichen oder Sonderzeichen außer Binde- und Unterstrichen!


    Wenn man das oft genug wiederholt merken sich die Anwender das.


    Auch wenn manche Sonderzeichen in einigen Kontexten heute funktionieren - ein Verstoß gegen obige Regel führt nicht zur Frage ob es ein Problem geben kann sondern nur wann.


    HTH

    Carsten

    Moin,


    zu prüfende Einstellungen:


    - Serverkonfigurationsdokument unter Router/SMTP > Nachrichtenrückruf > Rückruf von Nachrichten mit Ungelesen-Status zulassen: Gelesen und ungelesen

    - Zeit darf noch nicht überschritten sein. Serverkonfigurationsdokument ebenda, Rückruf von Nachrichten nicht zulassen, die älter sind als: xxx Tage

    - Empfänger darf dem Rückruf nicht widersprochen haben (Empfängermailbox > Vorgaben > Mail > Allgemein > Ansichts- und Ordnerverwaltung: Zulassen, dass andere Personen Mailnachrichten zurückrufen dürfen, die an mich gesendet werden


    Ggf. gelten noch weitere Einschränkungen, wie z.B. Mail darf noch nicht gelöscht worden sein, Mailversand erfolgte an verschachtelte Gruppe, Empfänger hat Mails via DD umgeleitet usw.


    HTH

    Carsten

    Moin,


    mir fallen spontan mehrere Ansätze dazu ein (in best-to-worst Reihenfolge):


    a) der Mail schon auf der Sender-Seite ein Header-Feld mitgeben, das die Mail als "bitte nicht automatisiert beantworten" kennzeichnet, die Header auto-generated oder auto-forwarded sorgen z.B. dafür, dass der OOO diese Mails ignoriert;


    b) mit einem Script den Sender in die Exception Liste aller OOO Profile verteilen;


    c) über die Maske (Out Of Office Profile) den Absender permanent in das Feld IgnoreFromList oder einen fixen Teil des Betreff-Textes ins Feld IgnoreSubjectPhrase einfügen.


    Auf einigen der von mir betreuten Systeme löse ich das mittels Variante a) über einen Action-Job in der iQSuite, ich füge Mails wie Newslettern, Daemons & Bounces, Fax-Mails, verpasste Anrufe etc. absichtlich das Feld $AssistMail mit dem Wert "1" hinzu (was die Notes Entsprechung zum auto-generated ist) was zur Folge hat, dass weder OOO noch irgendwelche Agenten standardmäßig auf diese Mails reagieren.


    Auch noch erwähnenswert: die Memo Maske bietet über die (in Teilmasken und Script verbauten) Zustelloptionen den Punkt "Keine Benachrichtigung an mich senden, wenn Empfänger den Abwesenheitsagenten ausführen" was zu einem Feld $AutoForward = "1" in der Mail führt, was dem Header auto-forwarded bei Internetmails entspricht.


    HTH

    Carsten

    Hallo Thomas,


    der Text wird, je nach Konfiguration des OOO, an zwei verschiedenen Stellen erzeugt.

    Die Konfiguration findest du im passenden Serverkonfigurationsdokument unter Router/SMTP > Erweitert... > Steuerung > Abwesenheitstyp: Service | Agent


    1) Im "alten" Agent-Modus: hier kommt der Text (über das Mailtemplate) direkt aus der jeweiligen Maildatenbank. Dort könnte man ihn bei Bedarf auch für einzelne oder alle Nutzer anpassen.

    2) Im Modus Service: hier generiert der Router die Benachrichtigungen, den Text setzt er aus den Profildaten des jeweiligen Nutzers (aus der jeweiligen Maildatenbank) und fest vorgegebenen String-Ressourcen (eine DLL auf dem Server) zusammen. Hier ist nur die Anpassung des Datums vorgesehen, einen einfach auszutauschenden Platzhalter für den Betreff hingegen gibt es so leider nicht.


    Für dich heißt das, dass du entweder auf den Modus "Agent" wechseln musst, dann hast du alles komplett in der Hand, brauchst aber jemanden, der sich ein wenig mit Entwicklung und Co. auskennt. Oder du gehst auf ein Drittanbieterprodukt (z. B. GBS iQ.Suite), da braucht man weniger Programmierung und mehr logisches Denkvermögen um die Konfiguration entsprechend vorzunehmen.


    Noch ein Hinweis: der Wechsel von Agent zu Service (und vice versa) bedeutet in der Regel, dass man gerade aktive OOO-Einstellungen aller Nutzer damit aushebelt und diese neu aktivieren muss.


    HTH

    Carsten

    Das Protokoll ist auf 64k begrenzt. Wie weit das zurück reicht hängt von der Menge der Aktivitäten und der Länge der Namen der Akteure ab.

    Weiterhin führt jede Replik ihr eigenes Protokoll, das demzufolge nicht mit repliziert.


    Unabhängig von den Aktivitätsprotokollen der jeweiligen Repliken kann man auch im Serverlog Zugriffe finden (Datenbank\Benutzung), hier gibt es kein 64k-Limit.

    Stattdessen können die Serverlogs beliebig aufbewahrt (bzw. archiviert) werden. Hier werden allerdings nur allgemein Schreib- und Lesevorgänge unterschieden statt den Details in den Aktivitätsprotokollen.


    Wer mehr braucht: umfangreichere Details sowie Analyse- und Aufbewahrungstools bieten z.B. die Ytria Tools.


    HTH

    Carsten

    Kann dies vielleicht an der optischen Einstellung hängen wie usebasicnotes=1 in der Ini?

    Korrekt vermutet. Die Funktionalität Kalender-Overlays, also das temporäre Einblenden/Übereinanderlegen mehrerer Kalender, funktioniert nur mit dem Standard-Client und selbst dort nur an speziell dafür programmierten Stellen.


    Der Basic-Client unterliegt hier leider den üblichen Beschränkungen von Notes, eine davon lautet: Views (also Ansichten, wie auch der Kalender eine ist) sind lediglich Filter, eine View kann daher nur Daten anzeigen die sich direkt aus den Dokumenten der Datenbank ergeben. Es sind keine relationalen Daten über Dokumentgrenzen hinweg oder Inhalte anderer Datenbanken damit darstellbar.


    Die Frage wäre, ob diese Nutzer nicht auf den Standardclient umsteigen können. Alternativ ginge sicher auch ein Import aber das klingt jetzt nach deutlich mehr Aufwand als Nutzen. Vielleicht findet sich auch eine Drittanbieter-Datenbank für kleines Geld die mit dem Basic-Client funktioniert.


    Carsten

    Den Besitzer einzutragen ist essenziell wichtig in jeder Mail-Db und hat erstmal nichts mit Berechtigungen zu tun:


    Jeweilige Mail-DB (bzw. bei dir den Teamkalender) öffnen, Aktion Mehr > Vorgaben ...

    Dort den Mail-(in)-Namen dieser Mail-DB (!) unter Mail > Allgemein > Besitzer auswählen und eintragen.

    WICHTIG:

    1) Der Besitzer muss identisch mit dem Namen des Mail-In-Dokuments sein; keine andere Person oder sich selbst eintragen da dieser Name zur Adressierung im Notes verwendet wird und dann nicht mehr eineindeutig wäre.

    2) Name im Mail-In-Dokument sollte hierarchisch (Team Muster/Meine Firma) sein und NICHT identisch mit der Internetmailadresse.


    Nur einige der Einstellungen hier greifen später für weitere Nutzer dieser Teamdatenbank, der Einstellungsdialog ist ebenso wie das gesamte Mailtemplate eigentlich nicht für Teamfunktionen konzipiert kann aber mit Einschränkungen durchaus so benutzt werden.


    Was alle Mitglieder des Teams später zu machen haben:


    1) eigenen Kalender öffnen und in der Navigationsleiste "Kalender hinzufügen..." auswählen

    2) Hinzufügen als "Notes-Benutzer-Kalender" wenn der Teamkalender mit dem Standard-Mailtemplate angelegt wurde

    3) im Feld Benutzername den Mail-In-Namen eintippen, sobald die richtige Db angezeigt wird diese auswählen

    4) Offline-Modus auswählen, wenn der Nutzer auch mit alternativen Clients seinen Kalender benutzt (Verse, iNotes, ...)

    5) Farben festlegen (kann später noch geändert werden) und OK


    Carsten

    Die Funktion, in einem Kalender weitere Kalender hinzuzufügen/anzuzeigen/einzublenden, ist nur für den Besitzer verfügbar.


    Das hat verschiedene Gründe, unter anderem, weil zum Beispiel für viele (Internet-) Kalender auch Zugangsdaten hinterlegt werden müssen, die dann im persönlichen Adressbuch des Besitzers gespeichert werden. Der Client holt sich für die Anzeige der eingeblendeten Kalender wiederum die Informationen über eine Mischung aus Profildokumenten (in der Mail-DB) und Kontodokumenten (aus dem Adressbuch) - diese Informationen stehen nur dem Besitzer uneingeschränkt zur Verfügung.


    In diesem Fall (Team) würde ich den umgekehrten Weg gehen: jedes Teammitglied blendet sich den Teamkalender in seinen persönlichen Kalender ein.


    HTH

    Carsten

    Ich hatte in meiner gesamten Zeit in über 20 Jahren als Trainer erst einen einzigen derartigen Fall, dort wollte ein Admin einen anderen Admin in Verruf bringen und hat mit dessen Account Dinge angestellt. Hier brauchten wir weitere Daten außerhalb von Domino zur Überführung der Person. Ich möchte das aber hier öffentlich nicht detaillierter ausführen um einerseits keine Anleitung zum "unsichtbaren" Datenmissbrauch zu liefern und andererseits nicht den Eindruck zu vermitteln, dass man das ohne die Details zu kennen mal eben mit ein paar Klicks herausfinden kann.


    Ich schicke dir eine PN dazu.


    Carsten

    Ein nachträglich eingebautes Logging kann nicht rückwirkend eingesetzt werden sondern funktioniert nur *ab* der Implementierung.


    Rückwirkend könnte man (rein hypothetisch) über Unread Tables eine vermutete Liste erzeugen, was aber aus verschiedenen Gründen zur Beweisführung wertlos ist da Nutzer diese einerseits absichtlich beeinflussen und andererseits bei bestimmten Vorgehensweisen beim Lesen komplett außer Kraft setzen können, was im Übrigen auch für das obige zutrifft sofern jemand vermutet, dass eine Überwachung stattfindet.


    Was mich wieder zu meiner letzten, immer noch nicht beantworteten, Frage bringt: über welchen konkreten Anwendungsfall sprechen wir?

    Rein technisch gesehen...

    ...wäre das zumindest beim Zugriff über HTTP theoretisch möglich, sofern die entsprechenden Log's laufen und nicht gelöscht wurden.

    Für Noteszugriffe existiert von Hause aus kein Standardprotokoll, das genügend Details für diese Zuordnung liefert, d.h. man müsste ein eigenes Logging dafür hinterlegen.


    Wobei gegen eine derartige Praxis eine ganze Menge rechtliche Dinge sprechen.


    Um was für einen Anwendungsfall abseits der Neugier geht es hier?


    Carsten

    Ketzerische Frage nach so vielen Posts:


    Gab es zu Beginn nicht schon ein funktionierendes Formular und es sollte lediglich zusätzlich eine Mail an (Kategorie-Gruppe-X) rausgehen?


    Ich würde wieder auf den Anfangszustand gehen und einen einzigen Agenten schreiben, der auf neue Dokumente in der Db reagiert.


    Das geht sogar (fast komplett) ohne Programmierung über "Einfache Aktionen" und "Infobrief" aka Newsletter und ist in weniger als 10 Minuten erledigt.

    Das einzige, was man noch zusätzlich braucht sind 5 Mail-Gruppen für die 5 Kategorien und etwas Grips, damit man aus dem Kategorienamen per Formel auf den Gruppennamen kommt, sowas wie Verteiler-KategorieA, Verteiler-KategorieB, ....


    Wenn das mit den Gruppennamen je Kategorie per Formel zu kompliziert ist kann man alternativ auch 5 Agenten, je einen je Kategorie und Empfängergruppe, beschränkt auf die Dokumente der jeweiligen View machen.


    HTH

    Carsten

    Mit Bordmitteln hast du da schlechte Karten, aber das weißt du vermutlich schon.


    Bleiben m.E. drei Optionen:


    1) Produkt einkaufen

    2) Programmieren (lassen)

    3) Kreativ sein, z.B. ein MIME- oder POP-Tool einsetzen, das von sich aus einen automatischen Export beherrscht.


    Carsten

    Du machst m. E. unnötige Abfragen, da die Reihenfolge nicht logisch aufgebaut ist. Da man bei rein internen und kleinen Mails nichts tun muss braucht man diesen Fall gar nicht zu prüfen.

    Andersherum fehlen dafür andere Prüfungen. So ist z.B. der Fall externe+interne Empfänger nicht berücksichtigt.


    Vorschlag: gehe etwas anders an die Lösung heran, formuliere dir zuerst das Ziel mit eigenen Worten neu.

    Ich versuche das, was ich verstanden habe, mal aus dem geschriebenen herauszulesen:


    (1) Warne, wenn E-Mail größer als MaxKB ist. (PS: das können die aktuellen Notesversionen auch ohne extra Formel)

    (2) Warne, wenn mindestens 1 Empfänger extern ist.


    Ergebnis hier wäre jetzt:

    - Nur noch 2 voneinander getrennte Prüfungen.

    - Wenn der Nutzer eine Abfrage nicht bestätigt (Nein oder Escape) endet die Ausführung.


    Wenn Bedingung1 dann ( Wenn Bestätigung1=JA dann @Success sonst @Return ) sonst @Success

    Wenn Bedingung2 dann ( Wenn Bestätigung2=JA dann @Success sonst @Return ) sonst @Success

    @PostedCommand([FileSave]);

    @PostedCommand([FileCloseWindow]))


    Ich hoffe, ich konnte damit ein paar Denkanstösse geben.

    Carsten

    Das Problem Softdeletion + Lock durch einen dritten Nutzer hatte ich gerade gestern erst wieder, habe jetzt eine Lösung (bzw. Workaround) dafür gefunden.

    Statt die Sperre normal (über Bordmittel, also das Menü) aufzuheben, was bei gelöschten Dokumenten nicht funktioniert geht der Umweg über das Löschen der Steuerfelder, also @Setfield( "$Writers", @Unavailable ) usw.


    Nebeneffekt: die Softdeletion wird dadurch aufgehoben - da es aber jetzt keine Sperrung durch eine dritte Person mehr gibt kann man jetzt selbst auf normalem Weg löschen. Bingo. Man muss sich nur merken, welches Dokument es war und das in der DB anschließend auch wiederfinden.


    Übrigens: die Manipulation dieser Felder wird nicht im $UpdatedBy oder $Revisions dokumentiert, man sollte wissen, was man da tut! Nach dem Löschen ist das aber vermutlich irrelevant. Löschprotokoll wird in dem Zusammenhang sicher nochmal ein spannendes Thema ;)


    Carsten

    Sobald man (über die PID) drauf gekommen ist, dass es mit IMAP zu tun hat wird die Meldung tatsächlich klarer - das IMAP-Protokoll ist nicht zur gleichzeitigen Nutzung eines Kontos von mehreren Clients ausgelegt, das ist eine Beschränkung von IMAP (nicht nur unter Domino) an sich.


    Der ursprüngliche Topic hatte zwar eine ähnliche Fehlermeldung handelte allerdings von LDAP und hängen gebliebenem Domino, das passt mit IMAP jetzt nicht wirklich zusammen, aber nach den ganzen Jahren (und neuen Versionen) wird sich dafür vermutlich keiner mehr interessieren.


    Danke trotzdem für die Erkenntnis mit IMAP! Man kommt ja immer wieder mal damit in Berührung.

    Was lernen wir für Domino daraus? Wenn schon mehrere Clients dann Notes, Verse oder Protokolle wie EAS statt IMAP benutzen.

    Carsten