Autor Thema: html aus body-item extrahieren  (Gelesen 3926 mal)

Sebastianh

  • Gast
html aus body-item extrahieren
« 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

Offline m3

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: html aus body-item extrahieren
« Antwort #1 am: 18.03.09 - 10:48:20 »
Designer-Hilfe, getMIMEEntity method  des Document Objektes.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Sebastianh

  • Gast
Re: html aus body-item extrahieren
« Antwort #2 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.

Sebastianh

  • Gast
Re: html aus body-item extrahieren
« Antwort #3 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
« Letzte Änderung: 19.03.09 - 15:59:44 von Sebastianh »

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: html aus body-item extrahieren
« Antwort #4 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.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Sebastianh

  • Gast
Re: html aus body-item extrahieren
« Antwort #5 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?!?

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: html aus body-item extrahieren
« Antwort #6 am: 19.03.09 - 16:21:26 »
Bei mir wars ein 1x Export
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Sebastianh

  • Gast
Re: html aus body-item extrahieren
« Antwort #7 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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz