Hallo Forum,
kann mir hier jeamand weiter helfen!
Ich sehe den Wald wohl vor lautre Bäumen nicht mehr.
Was möchte ich tun:
Ich benötige aus einem "Memo" Dokument das Body-Feld im HTML-Format, das ich in eine Datei exportieren möchte.
Mit meinem Code funktioniert das auch teilwiese.
Folgende Probleme habe ich:
- Das Body Feld HTML im DXL Export wird nach 72 Zeichen immer umgebrochen und ich wies nicht warum.
- Umlaute werden nicht korrekt maskiert.
- Das System verhält sich mit dem Formname "Memo" anders als mit dem Formnamen "MemoDummy"?
Kann mir jemand wieterhelfen?
Das kann doch nicht so schwer sein.
Dim ses As New NotesSession
Dim coll As NotesdocumentCollection
Dim maildoc As NotesDocument
Dim item As NotesItem
Dim rtItem As NotesRichTextItem
Dim objAttachment As NotesEmbeddedObject
' Markiertes Dokument kopieren
Set coll = ses.Currentdatabase.Unprocesseddocuments
Set mailDoc = coll.Getfirstdocument()
'Dateianhänge aus dem Body Feld löschen
Set rtItem = mailDoc.Getfirstitem("Body")
ForAll o In rtItem.EmbeddedObjects
Set objAttachment = Nothing
Set objAttachment = rtItem.Getembeddedobject(o.name)
If Not objAttachment Is Nothing Then
Call objAttachment.Remove()
End If
End ForAll
'Alle nicht benötigten Felder löschen
ForAll it In mailDoc.Items
select Case LCase(it.name)
Case "subject", "sendto", "copyto", "blindcopyto", "from", "body"
' Nicht tun
Case Else
' Alle andere Felder löschen
Call it.remove
End Select
End ForAll
Call mailDoc.save(True, False)
' Body Feld konvertieren
Dim mime As NotesMIMEEntity
ses.ConvertMIME = False
Call maildoc.Converttomime(2)
Call mailDoc.save(True, False)
' Dokument bzw. Body Feld exportieren
' Hinweis: Funktioniert NICHT beim Exportversuch als Stream. Warum auch immer!!
Dim exporter As NotesDXLExporter
Dim strOutput As String
Dim filenum As Integer
Set exporter = ses.CreateDXLExporter
exporter.mimeOption =0
strOutput = exporter.Export(maildoc)
filenum = FreeFile
Open "c:\temp\DXL-Export.dxl" For Output As filenum CHARSET="utf-8"
Write #filenum, strOutput
Close filenum
Grüße
Bernd
Ich benötige aus einem "Memo" Dokument das Body-Feld im HTML-Format
Die Funktion ist zwar ab R11 "veraltet" aber funktionierte bei mir bis zuletzt noch überall, wo ich sie mal gebraucht hatte.
HTMLStrings$ = NotesRichTextItem.Converttohtml([options] ) As String
Beschreibung: https://help.hcl-software.com/dom_designer/9.0.1/appdev/H_CONVERTOHTML_METHOD_NOTESRICHTEXTITEM.html
Das Body Feld HTML im DXL Export wird nach 72 Zeichen immer umgebrochen und ich wies nicht warum.
"There are two limits ... on the number of characters in a line.
Each line of characters MUST be no more than 998 characters, and SHOULD be no more than 78 characters, excluding the CRLF."
http://www.ietf.org/rfc/rfc2822.txt
Achtung, hier kommt jetzt eine Vermutung: die tatsächlich verwendete Zeilenlänge könnte sich der ausführende Prozess aus den Einstellungen am Client holen, beim Server hängt die konkrete Länge und Position der Einstellung vermutlich davon ab, ob die MIME-Konvertierung durch LS, HTTP, Router, IMAP oder POP getriggert wird. Außerdem ist bei MIME Mails keine erneute Konvertierung notwendig, hier muss man aufpassen, wenn man per LS zugreift, damit man nicht das vorhandene MIME in RT konvertiert, um danach wieder zurück nach MIME zu konvertieren. Jede Konvertierung verursacht Reibungsverluste.
Umlaute werden nicht korrekt maskiert.
???
Das System verhält sich mit dem Formname "Memo" anders als mit dem Formnamen "MemoDummy"?
Anhand der Formularnamen "Memo" und "Reply" erkennen die Exportroutinen eine Mail.
Nur was ich mir einfach nicht vorstellen kann ist, dass selbst Notes im Jahr 2024 immer noch nicht den Mailinhalt als HTML exportieren kann.
Klar, das kann Notes durchaus seit Jahren, Outlook hingegen kann es nicht mal im Jahr 2024.
Allerdings verstehe ich nicht, was du genau bezweckst, wenn ich "HTML-Mail" lese, wo "MIME-Format" stehen sollte. Und natürlich müssen (wie bei anderen Mailclients auch) schon ein paar Randbedingungen erfüllt sein. Zum Beispiel die, dass man eine Mail, die man exportieren möchte, nicht im ersten Schritt mal eben zerstört indem mal Felder, von denen man glaubt, dass sie nicht benötigt werden, löscht. Oder was ist, wenn die Mail bereits im MIME-Format vorliegt? Oder die MIME-Parts enthalten vielleicht gar kein HTML sondern nur Plain-Text oder Attachments, was dann? Also nochmal Butter bei die Fische - was ist der Zweck des Ganzen?
Und wann wurde in deinem Post aus "Body-Feld einer E-Mail im HTML-Format exportieren" ein "E-Mail als HTML exportieren"? Das sind völlig verschiedene Dinge. Auf die erste Variante habe ich dir gleich zu Anfang eine mögliche Lösung genannt: NotesRichTextItem.ConvertToHTML
Der EML-Export hingegen ist komplexer, entweder machst du es über die dafür vorgesehenen Funktionen (Drag&Drop, DXL) oder passt dir funktionierenden Code anderer Mitstreiter an, da wird man hier im Forum mehrfach fündig, z.B. hier: https://atnotes.de/index.php/topic,61734.msg394786.html#msg394786
HTH
Carsten