Das Notes Forum

Lotus Notes / Domino Sonstiges => Java und .NET mit Notes/Domino => Thema gestartet von: Sebastianh am 18.03.09 - 10:45:16

Titel: html aus body-item extrahieren
Beitrag von: Sebastianh am 18.03.09 - 10:45:16
Hallo,
ich möchte den Inhalt eines Dokuments (einer Mail) in einem XML-File speichern. Dazu folgender Code:
Code
if(item.getName().equals("Body")){
	Element e = mail.addElement("Body");
	e.addText(doc.getItemValueString(item.getName()));
}
"mail" ist ein dom4J-Objekt und "doc" das Dokument aus dem ich extrahieren möchte. Klappt auch alles wunderbar, sobald ich aber eine HTML-Email vorliegen habe, wird lediglich der Plaintext an dieser Stelle extrahiert. Sämtliche HTML-Tags gehen verloren. Jemand eine Idee wie ich an den "Quellcode" (samt HTML-Tags) der Mail komme?

Gruß,
Sebastian
Titel: Re: html aus body-item extrahieren
Beitrag von: m3 am 18.03.09 - 10:48:20
Designer-Hilfe, getMIMEEntity method  des Document Objektes.
Titel: Re: html aus body-item extrahieren
Beitrag von: Sebastianh am 18.03.09 - 10:58:21
ok, Danke. Vergessen zu erwähnen dass ich soweit bereits war  ::)
getMimeEntity gibt mir an der oben genannten Stelle allerdings "null" zurück. Damit konnte ich recht wenig anfangen, und dachte mir, ich wäre auf dem falschen Weg.
Titel: Re: html aus body-item extrahieren
Beitrag von: Sebastianh am 19.03.09 - 15:01:13
egal was ich mache,
Code
document.getMimeEntity();

gibt mir IMMER null zurück.
Folgende Beobachtung: Im NotesClient in den Dokument-Eigenschaften wird mir unter Body folgendes angezeigt:

Code
Feldname: Body
Datentyp: MIME-Element
...
Content-Transfer-Encoding: 8bit
Content-Type: text/html; 

Content-Transfer-Encoding: 8bit
Content-Type: text/html; charset=ISO-8859-15

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body bgcolor="#ffffff" text="#000000">
<div class="moz-text-html" lang="x-western">
<h1>Überschrift</h1>
...

Insgesamt existieren 5 Body Items (2 davon sind Attachments). Wenn ich via
Code
Vector items = doc.getItems();
	for (Object o : items){
        	Item item = (Item) o;
	}
bekomme ich ein Bodyitem angezeigt, welches dann den Text (ohne jedwede Formatinfo) enthält. Nach dem Cast ist das Item allerdings vom Typ RichTextItem. Wenn ich jetzt das Itemobjekt zu Richtextitem caste, und dann
Code
Richtextitem.getFormattedText(false, 0, 0);
(mit getUnformattedText() gibt es im übrigen auch keine Tags)
anwende, bekomme ich nach wie vor nur einen String ohne jegliche Formatierungsangaben zurück. Es muss doch irgendwie möglich sein, an den MimeEntity bzw. den kompletten Text aus dem Body-Item (inklusive HTML-Tags) zu kommen! Btw.:
Code
session.setConvertMIME(false);
ist natürlich gesetzt :)

Gruß,
Sebastian
Titel: Re: html aus body-item extrahieren
Beitrag von: flaite am 19.03.09 - 15:49:09
Ich glaub auch nicht das das so geht.
Hab das letztens so gemacht.
In der Mail-Maske
vor dem Body Feld <!-- download start --> in passThru Html
Hinter dem Body Feld <!-- download end --> in passThru html

Dann mit jakarta.HtmlClient die einzelnen Dokumenten geladen (also praktisch als html von Domino Web).
Dann was zwischen <!-- download start --> und <!-- download end --> herausschneiden.
Titel: Re: html aus body-item extrahieren
Beitrag von: Sebastianh am 19.03.09 - 16:11:41
hm, Danke, aber das hilft mir leider wenig, da ich weder Zugriff auf die Mailmaske habe, noch weiss, ob Domino Web überhaupt auf dem Ziel läuft (falls nicht, wird das auch wohl so bleiben).
Es kann doch nicht sein, dass es API mäßig gar keine Möglichkeit gibt an den Body-Plaintext einer Email zu kommen?!?
Titel: Re: html aus body-item extrahieren
Beitrag von: flaite am 19.03.09 - 16:21:26
Bei mir wars ein 1x Export
Titel: Re: html aus body-item extrahieren
Beitrag von: Sebastianh am 20.03.09 - 12:11:45
Problem über Umweg gelöst.

Dokument mit DxlExporter exportieren, aus Dxl-Datei Body Element auslesen.
Hier sind Formatangaben gespeichert. Zwar immer noch kein HTML, aber immerhin so viel, dass man damit was anfangen kann.

Gruß,

Sebastian