Seite 1 von 1

AsiNet Mailtext ohne HTML auslesen

Verfasst: So, 08. Dez 2019 18:18
von Manfred
ich möchte gerne Mails abrufen, der Text ist aber so gut wie immer in HTML. Wenn der Text in einer DBF gespeichert und dann angezeigt wird, ist dann natürlich alles mit den HTML Tags zu sehen. Kann ich das irgendwie ändern, so dass der Text evtl. auch in HTMl angezeigt wird?
Oder, was mir auch helfen würde, kann ich den Text statt als HTML direkt als normalen Text nur abfangen und dann wegschreiben? Ich werkel gerade ein wenig darum herum, komme aber irgendwie weder mit dem einen noch mit dem anderen voran.

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: So, 08. Dez 2019 21:29
von Werner_Bayern
Servus Manfred,

ersteres geht doch mit XbpHTMLWindow().

Zweiteres wäre MIMEContent(), schau Dir das Beispiel da an, vor allem GetAllContent(). Dort wird die Multipart-Mail aufgesplittet und Du bekommst bei entsprechenden Mails einmal den Inhalt als HTML und einmal als Text.

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Mo, 09. Dez 2019 11:12
von Manfred
Hi Werner,
welches Beispiel meinst Du? Ich finde da nichts mit GetAllContent()

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Mo, 09. Dez 2019 11:19
von Jan
Manfred,

rufe doch mal die Hilfe zu MIMEContent() auf. Da gibt es etwa in der Mitte der Samples eine PROCEDURE GetAllContent(aContent).

Jan

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Mo, 09. Dez 2019 11:21
von Manfred
jaja, Tomaten, Augen usw. Ich hatte Beispiel Code unter Samples gesucht. Danke

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Mo, 09. Dez 2019 11:29
von Manfred
ok, kann ich aber trotzdem nichts mit anfangen, da ich überhaupt nicht weiß, was ich abfragen und/oder wie bewerten soll/muß.
ich bekomme :getMessage(), aber dann habe ich ja wieder HTML, wenn vorhanden.

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Mo, 09. Dez 2019 21:59
von Werner_Bayern
Servus Manfred,

nimm das Beispiel mal 1:1 mit Deinen Zugangsdaten und schau Dir GetAllContent() genau an. Bei Multipart-Mails hast dann i. d. R. 2 Contents, 1x text/plain und 1x text/html.

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Di, 10. Dez 2019 9:23
von Manfred
Hi Werner,
und da geht es los. Bei Multipart gibt es gar nichts. Wird übersprungen, da kein Multipart .T. zurückgeliefert wird. Ich habe es die ganze Zeit mit dem Beispiel probiert, was im Source bei liegt.

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Di, 10. Dez 2019 9:58
von Jan
Manfred,

naja, es mag ja auch die Möglichkeit geben, das die Mail nicht sowohl HTML als auch Text liefert. Das ist ja nicht zwingendes Gesetz. In dem Fall muß man dann doch mit der HTML-Version klar kommen.

Ich lese das an einer Stelle auch aus. Und wenn es nur die Textversion gibt gebe ich das als XbpStatic aus, ansonsten als XbpHTMLWindow. Das es nur um statische Anzeige geht reicht mir das in dem Fall aus.

Jan

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Di, 10. Dez 2019 10:39
von Manfred
ich bin mir nicht ganz sicher, ob ich richtig verstanden wurde. Ich möchte gerne den Text als Normaltext haben, egal ob HTML oder Text. In der Regel steht da wohl HTML drin, aber das will ich auf keinen Fall haben. Ich möchte den reinen Text haben. Ich hatte es mal versucht mit :getMessageString() und das sah dann auch m.E. so aus, als wenn es dann reiner Text wäre. Aber den bekam ich irgendwie nicht weiterverarbeitet. Liegt wohl daran, dass ich nicht so genau weiß, was in dem Beispielprogramm genau alles im Endarray steht, was von receivemail zurückgeliefert wird

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Di, 10. Dez 2019 10:51
von Martin Altmann
Manfred,
es steht nur dann beides in der Mail, wenn beides reingeschrieben wurde!
Ich mache bei den Mails, die ich raussende, für beide Abschnitte einen passenden Text (plain sowie HTML), so dass es auf den Mailclients ordentlich angezeigt wird - egal, ob HTML oder Nur-Text. Wenn man das nicht macht (also nur HTML schickt), dann kann man auch nicht den reinen Text extrahieren.

Viele Grüße,
Martin

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Di, 10. Dez 2019 11:05
von Tom
Man kann das HTML mit "regular expressions" parsen und auf diese Weise den Text extrahieren, dafür gibt's Beispielcode (allerdings überwiegend für PHP und andere Sprachen) im Netz. Man kann das HTML in einen (versteckten) Renderer (XbpHtmlWindow?) laden und :Document:Body:InnerText auslesen, wenn man rankommt. Man kann die Nachricht in TX TextControl laden (das mache ich) und einfach die Methode ansprechen, die den reinen Text zurückgibt (was übrigens auch umgekehrt geht). Man kann die Readability-API verwenden, aber ich habe nicht herausgefunden, wo das jetzt steckt: https://code.google.com/archive/p/arc90 ... adability/

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Di, 10. Dez 2019 11:25
von Manfred
OK,
dann war der Weg über Mailempfang nicht der richtige.
Danke jetzt bin ich schlauer.

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Mi, 15. Jan 2020 11:45
von Manfred
So,
das Thema habe ich jetzt gelöst. Leider sind da jetzt aber noch etliche Sonderzeichen drin, die über die Mail rein kommen. Wie bekommt man denn sowas in den Griff und vor allen Dingen an welcher Stelle?

Re: AsiNet Mailtext ohne HTML auslesen

Verfasst: Mi, 15. Jan 2020 11:50
von Manfred
OK,
scheint sich auch gerade in Luft aufgelöst zu haben. Es gibt da einige Umwandlungsfunktion von UTF nach Char. Die scheint auf den ersten Blick zu klappen.