Das Notes Forum
Domino 9 und frühere Versionen => ND8: Administration & Userprobleme => Thema gestartet von: D. Maute am 23.11.12 - 15:12:21
-
Hallo zusammen,
ich hatte das hier vor Jahren mal angefragt (unter v7.??) und auch hier die perfekte Hilfe erhalten, in Form eines Skriptes, welches ins "Query Open"-Ereignis im Mail Form eingefplegt werden muss. Irgendwann hat das Skript nicht mehr funktioniert und wir haben das wieder "ausgebaut". Es handelt sich um folgendes Skript:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Set uidoc = Source
Set cMemoObject = New UIMemoDocument
Call cMemoObject.Init(Source,Isnewdoc)
Set doc = Source.document
If uidoc.IsNewDoc Then
' don't do anything, as this is a new document ...
Else
RR = doc.GetItemValue("ReturnReceipt")
If RR(0) = "1" Then
boxType& = MB_YESNO
answer% = Messagebox(" Möchten sie diese schicken? (Nein, unterdrückt eine Empfangsbestätigung)",boxType&, "Diese Nachricht enthält eine Empfangsbestätigung!" )
If answer% = 7 Then
' determine if the user would like to return the receipt
doc.ReturnReceipt = "0"
Messagebox("Empfangsbestätigung deaktiviert. Es wird keine Nachricht versendet")
Call doc.save (True, True)
'RR on this message;
End If
End If
End If
End Sub
Inzwischen sind wir auf der Version 8.5.2 FP4 bzw. 8.5.3 FP2 angelangt und würden so etwas wieder in diversen Mail-DBs benötigen. In meiner war es so eingebaut, dass per Schablonen-Update dieser Eintrag nicht überschrieben werden kann. Das hätte ich gerne wieder. Kann mir jemand dabei helfen, das Skript wieder lauffähig hinzubekommen?
Vielen Dank schon mal - und sorry, dass das Thema wieder mal neu auftaucht. Die Suchfunktion hat mir zwar diverse Treffer gebracht, letztlich aber immer wieder zur Diskussion geführt ob man das machen soll/darf und/oder warum nicht, jedoch nicht die Lösung zur Frage.
Folgendes ist heute z.B. passiert: Meine Kollegin hat ein etwas älteres Mail (über ein halbes Jahr) immer als ungelesen belassen, weil sie den Inhalt der Mail bisher nie gebraucht hatte. Sie wusste nicht, dass der Absender es mit einer Lesebestätigung behaftet hatte. Nun hat sie heute das Mail doppelgeklicht, als .eml exportiert und dann gelöscht. Plötzlich bekommt sie vom damaligen Absender eine neue Mail - sie hätte ihn angeschrieben, jedoch sei die Mail leer gewesen...?? Erst mal war großes Rätselraten angesagt, bis wir dahinter gekommen sind... Das ist z.B. ein Fall, warum wir ein popup brauchen, welches einem die Wahl/Info zukommen lässt, dass da jemand eine Empfagsbestätigung haben möchte.
Allerdings ist mir etwas rätselhaft: Ein Mail bekommt doch erst den Status gelesen, wenn es nicht mehr schwarz markiert ist? In den Optionen ist eingestellt, dass in der Vorschau angezeigte Mails als nicht gelesen gelten sollen. Wir haben den Test gemacht: Habe der Kollegin eine Mail mit Empfangsbestätiung gesendet. Sie hat sie nur angeklickt (nicht aufgeklickt) und nur die Vorschau betrachtet. Die Mail war immer noch als ungelesen markiert - und sofort bekam ich eine Empfangsbestätigung - das ist doch nicht normal?
Dagegen würde ich nun gerne was unternehmen - Danke!
Gruß Dietmar
Edit: Bei mir steht in der mail.nsf unter Masken\_Dokument-Memo bei QueryOpen folgendes drin:
Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
Set cMemoObject = New OLEUIMemoDocument
Call cMemoObject.Init(Source,Isnewdoc)
End Sub
Den früheren Eintrag (ich hatte mir damals eine kleine Doku gemacht) musste man unter Masken\Memo setzen - "Memo" gibt es gar nicht mehr??
-
Die Maske heisst heute "Nachricht".
Du solltest das aber sauber in einer neuen Schablone regeln. Die kannst Du dann allen Benutzern oder nur denen zuweisen, die das Feature haben sollen.
Zur Empfangsbestätigung: die wird beim öffnen versendet, weshalb auch der Code im "QueryOpen" platziert wird. Dabei wird NICHT unterschieden, ob das Dokument in der Vorschau oder komplett geöffnet wird. Ist also alles ok so wie es ist...
Sent from my iPad using Tapatalk
-
Hallo Torsten,
melde mich erst heute dazu (irgendwie funktioniert meine Mailbenachrichtigung bei neuen Antworten nicht mehr?!)...
Also gut, nicht direkt in die DB einbauen, sondern eine Kopie der Schablone vom Server machen und dort einbauen. Ich muss mal schauen, wer mir dabei helfen kann - ist schon lange her. Das Skript tut so aber schon, oder?
Danke und Gruß
Dietmar
-
Der Code funktioniert, auch wenn er nicht ganz schön ist. Du darfst aber beim einbauen die Masken "Antwort" und "Antwort mit Protokoll" nicht vergessen, denn manchmal bekommt man auch Antworten gesendet, die eine EMpfangsbestätigunge verlangen.... Und das mit der neuen Kopie der Schablone ist ein guter Ansatz.
Gruss
Torsten
-
Hallo Torsten,
gut, dann versuche ich mal einen unserer Programmierer im Hauptwerk drauf anzusetzen, vielleicht ist man dort so nett und passt das an. Ist ja ein Drama...
Gruß Dietmar
-
Ich meine, dass ich sowas mal ins QueryOpenDocument der Inbox (Ansicht / Ordner) eingebaut habe, dann ist nur eine einzige Stelle zu ändern und es gilt automatisch für alle Dokumente, egal welche Maske verwendet werden soll, außer man verschiebt die Dokumente vor dem Öffnen in einen anderen Ordner.
-
Hallo,
das klingt aber richtig gut - so was sollte ich haben!
Gruß Dietmar
-
Vielleicht auch nicht so gut ...
Habe gerade nochmal alles gelesen. Wenn die Empfangsbestätigung schon bei der Vorschau versendet wird, solltet Ihr unbedingt ausprobieren, welche Events vor der Vorschau ausgeführt werden:
QueryOpenDocument der Ansicht / des Ordners
QueryOpen der Maske
-
Zur Empfangsbestätigung: die wird beim öffnen versendet, weshalb auch der Code im "QueryOpen" platziert wird. Dabei wird NICHT unterschieden, ob das Dokument in der Vorschau oder komplett geöffnet wird. Ist also alles ok so wie es ist...
Öhm... jetzt versteh' ich gar nichts mehr?! Also mir war früher auch so, dass die Meldung (als ich den Code noch drin hatte) erst kam, wenn man die Mail doppelgeklickt hat, sie also von Fett schwarz auf schwarz gewechselt hat.
Gruß Dietmar
-
Hat mich nun selbst interessiert, deshalb habe ich es ausprobiert:
In der Vorschau wird das QueryOpen der Maske ausgeführt, aber nicht das QueryOpenDocument der Ansicht. Daher ist der Ansatz über das QueryOpenDocument nicht zielführend, bleibt das QueryOpen der Maske (und dann an alle Masken denken, evtl. über eine Teilmaske).
-
...äh, ja - genau...
Habe zwar nichts wirklich verstanden, klingt aber irgendwie logisch. Mal sehen, ob ich damit irgendwie weiter komme.
Gruß Dietmar
-
Habe zwar nichts wirklich verstanden, klingt aber irgendwie logisch.
ist doch gar nicht so schwer zu verstehen.
Dein Code prüft, ob in dem Dokument das Feld "ReturnReceipt" mit dem Wert "1" belegt ist (der Wert "1" bewirkt den Versand der Empfangsbestätigung").
Ist dies der Fall, wird der User gefragt, ob die Empfangsbestätigung versenden will. Sagt er nein, wird der Wert im Feld "ReturnReceipt" auf "0" gesetzt (= keine Empfangsbestätigung).
Die entscheidende Frage ist, wann dein Code "aktiv" werden soll.
Da eine Empfangsbestätigung versendet wird, sobald das Dokument geöffnet wird (durch Doppelklick oder Vorschau), muss dein Code entsprechend vorher aktiv werden - und das ist nunmal im QueryOpen (also kurz bevor das Dokument geöffnet wird).
Da das "Dokument" sowohl ein Maileingang (Maske "Nachricht"), als auch eine "Antwort" oder eine "Antwort mit Protokoll" sein kann, muss dein Code eben in jeder dieser Masken im QueryOpen stehen.
Das ist alles.
Gruß Stefan
-
Hallo Stefan,
aaah - ein Licht geht auf - vielen Dank! Jetzt hab' ich das als nicht-Programmierer auch verstanden, klar! Nun, dann muss es eben in allen diesen "Masken" eingebaut werden.
Gruß Dietmar
-
Vielleicht noch zur Ergänzung:
Allerdings ist mir etwas rätselhaft: Ein Mail bekommt doch erst den Status gelesen, wenn es nicht mehr schwarz markiert ist? In den Optionen ist eingestellt, dass in der Vorschau angezeigte Mails als nicht gelesen gelten sollen. Wir haben den Test gemacht: Habe der Kollegin eine Mail mit Empfangsbestätiung gesendet. Sie hat sie nur angeklickt (nicht aufgeklickt) und nur die Vorschau betrachtet. Die Mail war immer noch als ungelesen markiert - und sofort bekam ich eine Empfangsbestätigung - das ist doch nicht normal?
Du kannst eine Nachricht jederzeit als gelesen/ungelesen markieren. Das hat mit dem Thema Empfangsbestätigung nichts zu tun.
Gruß Stefan
-
Hi Stefan,
ja - das schon, aber ich meinte, dass es früher so war:
Voreinstellungen -> Mail in Vorschau als gelesen markieren - > Mail anklicken, Lesebestätigung wird gesendet, Mail bleibt schwarz
Voreinstellungen -> Mail in Vorschau nicht als gelesen markieren -> Mail anklicken, Lesebestätigung wird nicht gesendet, Mail bleibt schwarz
Jetzt:
Voreinstellungen -> Mail in Vorschau nicht als gelesen markieren -> Mail anklicken, Lesebestätigung wird sofort gesendet, Mail bleibt schwarz
Nun ja - es wird jetzt bei uns intern geprüft, ob eine Schablonenanpassung durchgeführt werden soll...
Gruß und Danke
Dietmar
-
Hallo Dietmar,
ich bin mir nicht sicher ob ich deine Frage richtig verstanden habe, weil ich das Mail nur schnell überflogen habe, aber vielleicht hilft es dir doch weiter:
Bei uns 8.5.2 FP4 wird auch in der Vorschau eine E-Bestätigung gesendet.
Ich habe mir damit geholfen, dass ich bei jedem Mail einen Agenten laufen habe der mir anzeigt dass eine E-Bestätigung verlangt wurde.
Weiters können unsere Mitarbeiter nun einen Agenten starten der diese vor dem öffnen des Mails löscht.
Wird das Mail exportiert, muss ein anderer Agent dieses Feld löschen, sonst wird bei jedem Öffnen dieses exportierten Mails wieder eine E-Bestätigung ausgelöst.
Allerdings funktioniert das nur bei internen Mails. Bei externen Mails wird nichts angezeigt.
Formel Empfangsbestätigung anzeigen:@If(ReturnReceipt="1"; FIELD _ViewIcon:=103; "");
SELECT @All
Formel Empfangsbestätigung löschen:@If(ReturnReceipt="1"; FIELD ReturnReceipt:=@DeleteField; "");
SELECT @All
Script wenn die Empfangsbestätigung vor dem exportieren des Mails gelöscht werden soll:
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim Item As NotesItem
Set db = session.CurrentDatabase
Set dc = db.UnprocessedDocuments
Set doc = dc.GetFirstDocument
Set item = doc.getfirstitem("Disposition_Notification_To")
If Not (item Is Nothing) Then
item.remove
End If
Set item = doc.getfirstitem("ReturnReceipt")
If Not (item Is Nothing) Then
item.remove
End If
Set item = doc.getfirstitem("RR2")
If Not (item Is Nothing) Then
item.remove
End If
End Sub
Gruß
Claudia
-
Hallo Claudia,
das mit den Agenten klingt auch nicht schlecht. Leider wurde bei uns die Schablone immer noch nicht angepasst. Das mit den Agenten werde ich mal probieren, das sieht "einfach" aus.
Danke!
Grüßle Dietmar
-
Hallo Dietmar,
Diesen Agent legt man sich bei geöffnetem Mail-Eingang über das Menü "Erstellen" -> "Agent" an.
Es öffnet sich ein neues Fenster in dem man dem Agenten einen Namen geben und u.a. auswählen kann wann er laufen soll - hier wählt man "Vor Eingang neuer Mail", alles andere kann man so belassen wie es ist.
Hat man das Eigenschaftsfenster geschlossen sitzt man vor einem großen Textfeld. Über dem Textfeld wählt man den Aktionstyp "Formel" aus. Dann gibt man im Textfeld folgende Zeilen ein:
@If(ReturnReceipt="1"; FIELD _ViewIcon:=103; "");
@If(ReturnReceipt="1"; FIELD ReturnReceipt:=@DeleteField; "");
Die erste Zeile sorgt dafür das bei Mails die eine Empfangsbestätigung verlangen ein roter Pfeil angezeigt wird, die zweite verhindert das eine Empfangsbestätigung gesendet wird.
Das habe ich mal vor langer Zeit in diesem wunderbaren Forum gefunden *smile*
Gruß
Claudia
-
Hallo Claudia,
super nett von Dir, das sollte ich hinbekommen. Bin erst nächsten Montag wieder in der Firma, das werde ich als erstes probieren.
Grüßle Dietmar
-
Hallo Dietmar,
falls du ein noch anderes Symbol für die Empfangsbestätigung verwenden willst, schau mal da:
http://www-01.ibm.com/support/docview.wss?uid=swg21089446
War mir eine Freude.
Grüaßle
Claudia
-
Hallo Claudia,
hmm - irgendwie klappt es nicht so ganz. Der Punkt, an dem man wählen kann, wann der Agent startet, den habe ich zuerst nicht gefunden. Musste nach Eingabe der zwei Zeilen mit der Rechten Maustaste auf Eigenschaften: Agent gehen. Dort konnte ich umstellen auf "Vor Eingang neuer Mail".
Jetzt steht aber unter den zwei Zeilen noch ein SELECT @All drin??
@If(ReturnReceipt="1"; FIELD _ViewIcon:=103; "");
@If(ReturnReceipt="1"; FIELD ReturnReceipt:=@DeleteField; "");
SELECT @All
Aber irgendwie scheint es nicht zu funktionieren. Ein Pfeil wird nirgends angezeigt.
Folgende Eigenschaften stehen in den Feldern:
Gemeinsam, Auslösen durch Ereignis - Vor Eingang neuer Mail - Ziel: Jedes eingehende Maildokument.
Habe mal kurz von einem Webmailer aus eine Mail reingeschickt. Da kam kein Symbol im Notes, allerdings kam auch keine Empfangsbestätigung bei geöffneter Mail an den Webmailer nach draußen. Habe den Agenten dann wieder deaktiviert, dann sollte normal ja eine Empfangsbestätigung verschickt werden. Diese kam nun aber auch nicht mehr an?! Habe ich zu schnell getestet? Macht das der Server nun??
Gruß Dietmar
-
Hallo Dietmar,
ich musse letzte Woche den Agenten ändern, weil er Empfangsbestätigungen von nicht-Notes-Mailprogrammen nicht anzeigt.
Bei diesem Agenten wird die Empfangsbestätigung nur angezeigt und nicht gelöscht:
@If(ReturnReceipt="1"; FIELD _ViewIcon:=103; "")|@If(Disposition_Notification_To!=""; FIELD _ViewIcon:=104; "");
SELECT @All
Zum löschen der EB müssen unsere User nun selbst eine zusätzlichen Agenten auswählen:
@If(ReturnReceipt="1"; FIELD ReturnReceipt:=@DeleteField; "");
SELECT @All
Und damit die Mails exportiert werden können und dann nicht jedes mal wieder die Empfangsbestätigung ausgelöst wird, habe ich noch eine einfache Akton erstellt, die das Feld Dispositon_Notification_To auf blank gestellt. Das muss der User machen bevor er das Mail exportiert.
Habe im Moment leider keine Bessere Lösung dafür.
Schöne Grüße
Claudia
-
Hi Claudia,
das bedeutet also, dass diese Zeile:
@If(ReturnReceipt="1"; FIELD _ViewIcon:=103; "")|@If(Disposition_Notification_To!=""; FIELD _ViewIcon:=104; "");
SELECT @All
Auch Empfangsbestätigungen von nicht-notes-clients wenigstens anzeigt?
Gut, dann werde ich das hier:
@If(ReturnReceipt="1"; FIELD _ViewIcon:=103; "");
@If(ReturnReceipt="1"; FIELD ReturnReceipt:=@DeleteField; "");
SELECT @All
abändern, und die obere Zeile einfügen, so sehe ich wenigstens, dass eine angefordert wurde. die alte Zeile bewirkt aber trotzdem, dass Notes-Empfangsbestätigungen gelöscht werden? Wäre also auch das hier möglich?
@If(ReturnReceipt="1"; FIELD _ViewIcon:=103; "")|@If(Disposition_Notification_To!=""; FIELD _ViewIcon:=104; "");
@If(ReturnReceipt="1"; FIELD ReturnReceipt:=@DeleteField; "");
SELECT @All
Gruß Dietmar
Edit: Habe mir im Notes mal selber kurz eine Mail mit Bestätigung geschickt - den roten Pfeil sehe ich nun auch noch mit dem "alten Code"
Edit 2: Habe den Agentencode geändert:
@If(ReturnReceipt="1"; FIELD _ViewIcon:=103; "")|@If(Disposition_Notification_To!=""; FIELD _ViewIcon:=104; "");
@If(ReturnReceipt="1"; FIELD ReturnReceipt:=@DeleteField; "");
SELECT @All
Jetzt zeigt er einen roten Pfeil nach links bei Notes-intern an und einen roten Pfeil nach Rechts bei externen Anforderungen - das ist schon mal sehr gut. Komischerweise bekomme ich bei beiden Mails keine Empfangsbestätigung. Mir scheint, da hat unsere Mutter ggf. inzwischen schon intern was geregelt. Das kann ich nächsten Montag in der Firma mit meinem Testrechner erst nachvollziehen
-
Ja genau, so kannst du es machen.......
Durch diesen Agenten (der vor Eingang neuer Mail laufen muss)
@If(ReturnReceipt="1"; FIELD _ViewIcon:=103; "")|@If(Disposition_Notification_To!=""; FIELD _ViewIcon:=104; "");
@If(ReturnReceipt="1"; FIELD ReturnReceipt:=@DeleteField; "");
SELECT @All
wird mit der ersten Zeile die EB auch von anderen Mail-Programmen angezeigt (konnte dies allerdings nur mit meiner privaten Internet GMX testen).
Die zweite Zeile löscht die EB bevor sie gesendet wird (funktioniert aber nur von Notes nach Notes).
Unser Domino Server ist so konfiguriert dass er nach extern keine Empfangsbestätigungen zuläßt. Blöderweise wird aber sobald ein Mail von einem anderen Mailprogramm mit EB gesendet und dann exportiert wird bei jedem öffnen dieses exportierten Mails eine EB gesendet. Wenn nun unsere User dieses Mail 20x öffnen wird 20x eine EB gesendet.
Um das zu verhindern müssen sie vorher das Feld Disposition_Notification_To auf blank setzen.
-
Ja genau, so kannst du es machen.......
Durch diesen Agenten (der vor Eingang neuer Mail laufen muss)
@If(ReturnReceipt="1"; FIELD _ViewIcon:=103; "")|@If(Disposition_Notification_To!=""; FIELD _ViewIcon:=104; "");
@If(ReturnReceipt="1"; FIELD ReturnReceipt:=@DeleteField; "");
SELECT @All
wird mit der ersten Zeile die EB auch von anderen Mail-Programmen angezeigt (konnte dies allerdings nur mit meiner privaten Internet GMX testen).
Die zweite Zeile löscht die EB bevor sie gesendet wird (funktioniert aber nur von Notes nach Notes).
Aaah - und da ich mir im Notes selber an mich eine Mail geschickt habe, bekomme ich auch keine Lesebestätigung an mich selbst von mir selbst... Ist wie bei einer Mailverteilergruppe, in der man selbst drin steckt, die Mail bekommt man ja auch nicht an sich selbst zugestellt, wenn man der Absender ist - richtig?
Super - das mit intern von Notes zu Notes, werde ich wie gesagt nächste Woche mit meinem Testrechner mal ausprobieren - das ist schon mal ein großer Fortschritt - hab' vielen Dank!
Grüßle Dietmar
-
Ja ist leider auch so, mit dir selber testen geht im Notes leider nicht.
Habe mir an dem Thema schon die Zähne ausgebissen.
LG
Claudia