Mailbody auslesen (Größe des Zeichenpuffers...)

18. September 2012 15:01

Hallo,

ich möchte diverse Emails aus Navision auslesen. Die Funktion durchläuft auch den Posteingang, der Betreff läßt sich ebenfalls wunderbar auslesen. Nur beim eigentlich Text der Nachricht (Body) weiß ich nicht, woran ich so viel Text übergeben könnte. Es erscheint die Fehlermeldung "Die Länge des Textstring überschreitet die Größe des Zeichenpuffers".

Kann mir jemand einen guten Tipp geben?


Auszug aus dem Quellcode:

ol:=olItems.GetNext();
IF STRPOS(UPPERCASE(ol.Subject),'NEW BOOKING')>0 THEN
BEGIN
nachricht[1]:=FORMAT(copystr(ol.Body,1,250));
...
END;


Die Variable Nachricht ist als Array definiert mit jeweils 250 Zeichen Länge.
OL ist eine Variable vom Typ Automation (Outlook Instanz = MailItem)

Liebe Grüße
Stefan

Re: Mailbody auslesen (Größe des Zeichenpuffers...)

31. Dezember 2012 12:13

Hallo,
was möchtest Du denn mit dem Inhalt machen? Willst Du den in einem Feld speichern oder als Message ausgeben? Beim speichern in einem Feld schaue Dir mal das Thema Blob oder Bigtext an und damit auch das Thema Stream. Da solltest Du dann das Problem mit gelöst bekommen.

Schiebe erst alle Zeilen aus dem Mailbody in einen OutStream

Code:
OutStream.writeText(Mailbody)
outstream.writeText(); //Zeilenumbruch erzeugen


und dann nehme einfach den outStream und schiebe in ein Blob.

Danach nimmst Du einfach den Blob und liest Ihn mit einem Instream wieder aus.

Ein Beispiel dafür könntest Du im Bereich Companyinformation finden und dort beim Feld Picture. Da gibt es Funktionen, die Dir ein Bild reinschieben und Funktionen, die Dir das Bild anzeigen lassen. Da ein Blob und ein Stream binary sind ist es egal ab Text oder Bild.

Ist jetzt nur mal so auf die schnelle überlegt und nicht getestet. Vielleicht hat ja auch ein andere einen Idee.

Achso das einlesen von Streams findest Du auch in den Funktionen bein einlesen der Kontoauszüge.

Na dann viel Erfolg und guten Rutsch.

Sven

Re: Mailbody auslesen (Größe des Zeichenpuffers...)

31. Dezember 2012 16:12

Herzlich Willkommen im Forum!

Zum Thema Mail mit Streams steht auch hier einiges an Beispielcode. Eventuell reicht es aber auch schon, die Arrayfelder auf das Maximum von 1024 Zeichen zu erhöhen.