DXL Export

  • Hi,


    ich bin gerade dabei Inline Attachments auszulesen. Durch den Tipp von taurec verwende ich dazu DLX. Ich greife dazu mit Hilfe der COM API auf das NotesDocument zu und schreibe dies in eine Datei.


    Jetzt wollte ich einfach das inline Attachment aus der XML Datei herausnehmen und speichern. Leider kann dies nicht angeigt wurden.


    Eine Base64 Decodierung habe ich selbstverständlich vor dem speichern in die Datei vorgenommen.


    Muss ich beim Speichern des Attachments (ist immer ein GIF) noch etwas beachten?



    Code


    nDoc = nBase.GetDocumentByUNID("115B834C91FAFA35C125771F0029332B");
    nExport = nSession.CreateDXLExporter();
    nExport.ConvertNotesbitmapsToGIF = true;
    string xmlContent = nExport.Export(nDoc);
    // Dokument speichern //


    Viele Grüße

  • Du hast aber schon nur den Inline Teil aus dem String herausextrahiert, den dir der Export geliefert hat ?


    Wie wäre es da auch mal mit dem kompletten Code, daß wir sehen können was genau du tust ?

  • Ja ich habe nur den Inline-String extrahiert. Ich hatte nach dem Konvertieren ein Zeichensatzfehler. Jetzt Klappt es alles.


    Aber mal eine grundsätzliche Frage zur Weiterverarbeitung. Gibt es bereits Libs, die das RTItem des DXL Exportes weiterverarbeiten? z.B. als MIME / HTML ? oder muss ich dies selbst schreiben? (gerne auch von drittanbietern)


    Grüße

  • Danke für den Tipp,


    ich habe nichts gefunden, was eine gute Lösung wäre. Es gibt zwar ein RTF Export, aber dieser ist sehr langsam. Eine Umwandlung von der XML - Datei gibt es leider nicht.


    Grüße

  • Ich brauche:


    Den Inhalt belibiger Body Felder


    Inklusive:
    - Formatierung (Tabellen, Fett, Kursiv, Schriftart ...)
    - inline Attachments


    Möglichst als RTF oder HTML oder HTML/Mime.


    Das ganze muss per COM Api passieren. Ihrgendwelche Agents die in einer zweiten NotesDB liegen sind nicht wirklich für meinen Zweck gut. Denn ich muss (ca. 100.000 Mails exportieren und in ein Archivsystem zu pumpen).



    aktuelles Vorgehen:


    mit Hilfe von GetFirstItem("ItemName") greife ich auf alle benötigten Items zu.


    Problem: Bei dem Item Body bekomme ich unformatierten Text ohne inline Attachments.


    Normale Dateianhänge lese ich aus den $File-Items aus und Extrahiere diese ins Filesystem.


    Das Problem was ich habe ist also nur noch, den formattierten Text und die darin befindlichen Attachments zu extrahieren.


    Zur Zeit verwende ich die von Daili vorgeschlagene Variante des DXL exports und anschließender Base64 Umwandlung. (Dies ist für Attachments prima. Nur den RichText Inhalt (Text) in ein leserliches Format zu bringen fehlt noch. Am liebsten hätte ich eine RTF Datei, die 1:1 so aussieht wie der Body einer beliebigen Mail.


    Grüße


    Info

  • Im Endeffekt müsstest du, wenn dir die Export Funktionalität vom Notes Client nach RTF nicht ausreicht die Umwandlung komplett selbst machen, was aber ein ziemlicher Aufwand sein wird, da du auf jede mögliche Formatierungsform Rücksicht nehmen musst

  • Die Export Funktionalität?


    Ich bekomme wirklich nur den reinen PlainText ohne formatierungen wenn ich über die ComAPI zugrife. Bei DXL bekomme ich wenigstens ein par Formatierungsangaben, die ich aber nicht weiter verwenden kann. Oder gibt es eine Variante an RTF heranzukommen, die mir nicht bekannt ist?


    Ansonsten werde ich wohl einen Parser schreiben :(



    Trotzdem vielen Dank für die Infos, jetzt weis ich wenigstens wo ich dran bin ;)

  • Du hattest doch schon mal den Code aus OpenNTF erwähnt, den es da gibt.
    Der verwendet nur die Export DLL von Notes.
    Macht also automatisiert das gleiche wie wenn du eine Mail öffnest und per Datei\Exportieren das in RTF exportierst.


    Dir ist schon klar, daß ein Parser hier einen extremen Aufwand bedeuten würde ?

  • ja der Aufwand ist mir Bewusst, deshalb würde ich dies gern umgehen.


    Der Code von OpenNSF ist mir bekannt. Mein Problem hierbei ist, das ich das zu exportiernde Dokument in die openNSF DB kopieren muss. Denn die vorhandenen MailDatenbanken darf ich nicht anpassen bzw. um einen Export Agenten erweitern.


    Villeicht fehlt mir auch das Verständnis von Lotus Notes um dies per COM zu realisieren.

  • Ich habe versucht den Code nach COM zu Exportieren.


    Leider bekomme ich die MimeEntity nicht zurück :(






    Die Zeile nConvertMimeItem.GetMIMEEntity(); liefert NULL zurück.


    Hat jemand eine Idee?

  • Hi,


    ich weis, dass die Designerhilfe sagt, das es kein MIME ist.


    Ich versuche aber das Dokument in MIME zu Konvertieren. Um aus der MAIL den Body als MIME zu erhalten.



    Deshalb setze ich ja auch am Anfang
    nSession.ConvertMime = true;


    und speichere dann das RichTextItem in dem neuen Dokument.


    Grüße


    InfoStudent

  • Deine Stärke ist echt das ......schwetzen.




    Habe ich nicht gesagt ich versuche etwas was in NotesGelöst ist auch per COM zu Lösen, da ich nicht jede MailDatenbank anpassen kann????????



    Naja aber hauptsache ma gemeckert. Ich denke du vertreibst mehr leute aus dem Forum als du jemandem Hilfst.


    Villeicht stehe ich mit meiner Meinung alleine. Aber ich finde, du untersützt neulinge nicht, sondern meinst für dich evtl. Triviale Dinge nicht mehr erklären zu müssen.



    Finde ich echt Schade, gerade weil ich das Domino Forum echt nett fand.


    Du kannst diesen Thread löschen oder auch direkt meinen Accound. Denn auf den Arm nehmen lasse ich mich ebenfalls nicht.

  • Es ist eher schade, daß du leider nicht mal akzeptierst was dir hier gesagt wird.


    Der Hinweis auf die Hilfe hätte dir eigentlich, wenn du sie gelesen hättest, schon gezeigt, daß es so nicht geht.


    Und wenn du dann schon als Beispiel eine andere DB bringst, dann solltest du auch entweder diesen Ansatz übernehmen oder das Beispiel eben nicht bringen.
    Nur weil es auf die eine Weise geht heisst das noch lange nicht, daß es auf einem anderen Weg auch geht.


    Bei dir ist eher das Problem, daß du Hilfe nur dann annehmen willst wenn sie in das passt was du dir vorher schon vorgestellt hast.
    Ansonsten ist es nur Gemecker und keine Hilfe.