Der Benutzer, der unter "Werkzeuge" > "Vorgaben..." > "Diese Mail Datei gehört" eingetragen ist, stimmt mit dem wirklichen Benutzer, dem die Maildatei gehören sollte, überein.
Beiträge von Grizzly
-
-
In der Maildatei? Du meinst die Zugriffsrechte? Die Benutzer sind jeweils Manager auf ihren Maildatenbanken. Die Maildatenbanken stehen auch in den Personendokumenten der Benutzer richtig drin.
-
Um das mit der Eingabe und der automatischen Ergänzung aus der names.nsf aufzugreifen: Nein, dort steht nichts drin.
Der Fehler beim Beantworten von Mails auf. Der Benutzer trägt also gar nichts selber ein.
Ich konnte in den Einstellungen der names.nsf sowie in den Benutzereinstellungen des Notes Clients nichts finden. Auch in Personen- bzw. Benutzerdokumenten im Notes Verzeichnis auf dem Server war tote Hose. Habe dort einfach mal einen Benutzer, bei dem alles klappt, mit einem der Problemkandidaten verglichen. Waren aber keine Unterschiede.
-
Du meinst im Serverdokument? Aber müsste das dann nicht bei allen nicht funktionieren, wenn es daran liegt? :-?
-
Der Absender sowie die anderen Empfänger werden falsch dargestellt und sind so auch im Dokument gespeichert. Bei internen Mails, bei denen auch ein externer Empfänger dabei ist, wird er richtig dargestellt. Wenn man eine Mail mit einer Adresse der Form
bekommt, stimmt die Adresse prinizipiell immer, egal ob von intern oder extern.
-
Wenn ich raten müsste, würde ich vermuten, dass der Agent noch mit Version 5 erstellt wurde. Aber sicher bin ich mir nicht...
-
Wie meinst Du das? Ob dann die Adressen stimmen?
Meinst Du, ob das Problem immer bei externen Adressen auftritt? -
Der Titel sagt es eigentlich schon: Ich habe hier bei zwei Benutzern das Problem, das Mail von außerhalb in ihrem Mailfach mit einen Leerzeichen / einem Unterstrich anstatt des Punktes in den Mail Adressen ankommen.
Meist ist es so, dass beim Absender ein Unterstrich kommt, bei den anderen Empfängern (An, Kopie, Blindkopie) aus einem Punkt in der Mail Adresse ein Leerzeichen wird. Antworten dann die Benutzer ohne die Adressen mit der Hand am Arm zu korrigieren, erhalten sie natürlich kurz nach dem Abschicken eine Fehlermeldung der Server der Empfänger.
Wir setzen hier als Client die version 6.5.1 Deutsch ein. Über die Mailfächer der beiden Benutzer habe ich die aktuelle Schablone ExtR6Mail/de.
-
Hi,
außer dem Domino Verzeichnis haben wir auch noch ein Adreßbuch unserer Lieferanten und Kunden. Nun wollen wir dies auch zum Mailen verwenden.
Mein Problem: Wie kann auf dem Server es einrichten, dass auch dieses Adreßbuch vom Client verwendet wird.
Alternativ: Wie richte ich im Client das Adreßbuch, das auf dem Server liegt, als weiteres Adreßbuch ein. Normalerweise kann man lokale Adreßbücher in den Benutzervorgaben recht einfach einstellen. Aber wie kann ich dort einen Server angeben?
-
In meinem Fall trat es eher ganz unverhoft auf. Die Notes Version hat sich zwischendrin nicht verändert (6.5.1).
Leider kann man halt nicht alles in Java schreiben. -
Danke Diali. Wunderbar. Funktioniert wieder.
Hast Du eine Erklärung, woran das liegen kann? :-? -
Ich habe ein LotusScript in einer Schaltfläche einer Maske hinterlegt. Diese ruft einen Agenten auf. Dieser besitzt eine Funktion CopyResponse und bindet ein LotusScript Script Bibliothek ein.
Nun bekomme ich die Fehlermeldung:
Das tolle daran: Es gibt in der eingebundenen Bibliothek weder eine Funktion noch eine Variable CopyResponse. Habe auch mal versucht die Funktion im Agenten in CopyRespon (ohne e am Ende) umzubennen. Ergebnis:
Irgendwelche Ideen? :-? -
Es gibt ein Recht "Dokumente replizieren oder kopieren". Wenn Du das dem Benutzer entziehst, kann er auch nicht mehr drucken (Nebenbei funktioniert auch das Cut&Paste nicht mehr). Weis aber nicht, ob das in Deinem konkreten Fall sinnvoll ist, da dann ja auch das Replizieren flach fällt.
-
Dann kann es aber allerhöchsten sich um eine unterschiedliche Aufrufabfolge der Methoden der Notes API handeln. Gibt es dazu irgendwo einen Artikel o.ä.?
-
Das einzige, was mir in die Richtung bekannt wäre, ist die Sache mit dem Garbage Collector. Und zwar funktioniert der anscheinend nicht so einwandfrei bei den Notes Klassen (light weight vs. heavy weight). Das ist aber mit Java zu erklären. Die Verbindungen der Objekte innerhalb des Notes API sind wahrscheinlich so komplex, dass sie der GC nicht auflösen kann und deswegen die Objekte nicht mehr aus dem Speicher räumt. Siehe: recycle() und recycle(java.util.Vector).
Oder meintest Du nochmal etwas anderes? :-?
-
Zitat
taurec schrieb:
Vielleicht hat er ja auch mit deiner Methodenstruktur ein problem.Mach doch mal alles innerhalb einer Methode.
Du bist also der Meinung, dass das JRE, das mit Notes ausgeliefert wird, anders funktioniert als bspw. das von Sun?In Java macht es (normalerweise) nichts aus, ob ich alles in einer oder in mehreren Methoden aufrufe. Zumindest ist das in meiner mehrjährigen Java Laufbahn noch nie vorgekommen.
Was ich mir aber vorstellen kann, ist, dass die Notes Java API nicht zu 100% wie die LotusScript API funktioniert bzw. die Java Version der API wahrscheinlich auch ein paar Bugs hat. :-?
-
Aaahhh! Habe gerade mal spasseshalber und aus lauter Verzweiflung das löschen von Anhängen aus Rich Text Feldern mit einem kleinen Lotus Script Agenten ausprobiert. Und es funktioniert ohne Problem! Ich bekomm' gleich noch einen zuviel... :-x
Naja, werde das jetzt irgendwie so lösen, dass ich da vorher einen Lotus Script Agenten drüber lassen, der mir den Anhang löscht, und dann den Rest des Java Agenten runterarbeiten. :cry:
-
In der Hilfe findet sich folgendes Beispiel:
Java
Alles anzeigenimport lotus.domino.*; import java.util.Vector; import java.util.Enumeration; public class JavaAgent extends AgentBase { public void NotesMain() { try { Session session = getSession(); AgentContext agentContext = session.getAgentContext(); // (Your code goes here) Database db = agentContext.getCurrentDatabase(); DocumentCollection dc = db.getAllDocuments(); Document doc = dc.getFirstDocument(); boolean saveFlag = false; while (doc != null) { RichTextItem body = (RichTextItem)doc.getFirstItem("Body"); System.out.println(doc.getItemValueString("Subject")); Vector v = body.getEmbeddedObjects(); Enumeration e = v.elements(); while (e.hasMoreElements()) { EmbeddedObject eo = (EmbeddedObject)e.nextElement(); if (eo.getType() == EmbeddedObject.EMBED_ATTACHMENT) { eo.extractFile("c:\\extracts\\" + eo.getSource()); eo.remove(); saveFlag = true; } } if (saveFlag) { doc.save(true, true); saveFlag = false; } doc = dc.getNextDocument(); } } catch(NotesException e) { System.out.println(e.id + " " + e.text); e.printStackTrace(); } } }
Ich habe mal mein Programm entsprechend angepasst. Aber hat auch nichts gebracht. Wobei ich das so langsam sehr merkwürdig finde. Die Beispiele von IBM sollte ja schon funktionieren.Liegt es vielleicht daran, dass ich zwei Rich Text Felder habe? Das Notes damit irgendwie nicht klar kommt? :-?
-
Habe noch etwas rumprobiert. Irgendwie scheint es so zu sein, das EmbeddedObject.remove() nur den Anhang aus dem jeweiligen Feld, nicht aber aus dem Dokument entfernt.
-
Nein, hat leider auch nichts gebracht. Die Anhänge sind immer noch da.
Hier mal die Klasse:
Code
Alles anzeigenpublic class GespraechsprotokollPrintAgent extends AgentBase { /** Der Feldname des RichText-Feldes, welches die PDF Datei beeinhalten soll. */ private final static String FIELDNAME_PRINT = "Print_Page"; /** Der Feldname des RichText-Feldes, welches nur die aktuelle PDF Datei beeinhalten soll. */ private final static String FIELDNAME_PRINT_ACTUAL = "Actual_Print_Page"; /** Schlüssel für temporäres Verzeichnis. */ private final static String PROPERTY_NAME_TEMP_PATH = "java.io.tmpdir"; public void NotesMain() { Session session = null; RichTextItem printPage, actualPrintPage; Document doc = null; AgentContext agentContext; Database database; String docId, tempPath, pdfFilename; Gespraechsprotokoll form; FormPrint print; File file; try { session = this.getSession(); agentContext = session.getAgentContext(); database = agentContext.getCurrentDatabase(); docId = agentContext.getCurrentAgent().getParameterDocID(); doc = database.getDocumentByID(docId); if (doc == null) { JOptionPane.showMessageDialog(null, "Kein Dokument mit der Id " + docId + " gefunden.", "Datenbank Fehler", JOptionPane.ERROR_MESSAGE); } else { printPage = this.getRTField(doc, FIELDNAME_PRINT); // doc.removeItem(FIELDNAME_PRINT_ACTUAL); // actualPrintPage = // this.createRTField(doc, FIELDNAME_PRINT_ACTUAL); actualPrintPage = this.getRTField(doc, FIELDNAME_PRINT_ACTUAL); this.removeAllEmbeddedObjects(doc, actualPrintPage); // Grafik laden. LoadGraphics.load(); // Temp-Verzeichnis holen. tempPath = System.getProperty(PROPERTY_NAME_TEMP_PATH); pdfFilename = tempPath + "Gespraechsprotokoll.pdf"; // Gespraechsprotokoll erstellen. form = GespraechsprotokollMapper.mapDocument(session, doc); // Gespraechsprotokoll speichern. if (form.getAbteilungsmeeting() == 1) { print = new RGespraechsprotokollPrint( form, pdfFilename, this.getName()); } else { print = new GespraechsprotokollPrint( form, pdfFilename, this.getName()); } print.print(); // Gespraechsprotokoll anhaengen actualPrintPage.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "", pdfFilename, null); printPage.embedObject(EmbeddedObject.EMBED_ATTACHMENT, "", pdfFilename, null); // Dokument speichern. doc.save(); // Gespraechsprotokoll im Dateisystem löschen. file = new File(pdfFilename); file.delete(); if (file.exists()) { System.err.println("Konnte Datei '" + file.getAbsolutePath() + "' nicht löschen."); JOptionPane.showMessageDialog(null, "Konnte Datei '" + file.getAbsolutePath() + "' nicht löschen.", "Löschen fehlgeschlagen", JOptionPane.ERROR_MESSAGE); } } } catch (NotesException ne) { ne.printStackTrace(); JOptionPane.showMessageDialog(null, "Fehlermeldung:\n" + ne.getMessage(), "Notes Fehler", JOptionPane.ERROR_MESSAGE); } catch (PrintException pe) { pe.printStackTrace(); JOptionPane.showMessageDialog(null, "Fehlermeldung:\n" + pe.getLocalizedMessage(), "iText Fehler", JOptionPane.ERROR_MESSAGE); } } private RichTextItem getRTField(final Document doc, final String fieldname) throws NotesException { RichTextItem rti; if (doc.hasItem(fieldname)) { rti = (RichTextItem) doc.getFirstItem(fieldname); } else { rti = this.createRTField(doc, fieldname); } return rti; } private RichTextItem createRTField(final Document doc, final String fieldname) throws NotesException { RichTextItem rti; rti = doc.createRichTextItem(fieldname); return rti; } private void removeAllEmbeddedObjects(final Document doc, final RichTextItem rti) throws NotesException { Vector objects; Iterator iterator; EmbeddedObject obj; String name; objects = rti.getEmbeddedObjects(); iterator = objects.iterator(); while (iterator.hasNext()) { obj = (EmbeddedObject) iterator.next(); name = obj.getName(); System.out.println("remove"); System.out.println("FileSize = " + obj.getFileSize()); System.out.println("Name = " + obj.getName()); System.out.println("Object = " + obj.getObject()); System.out.println("Source = " + obj.getSource()); System.out.println("Type = " + obj.getType()); obj.remove(); } doc.save(); } }