Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: Unbekannte Anzahl an Zeilen auslesen + unerwartete Textz

  Alt 31. Jul 2006, 07:46
Guten Morgen.

Deine Bemühungen um einen low level Zugriff auf das MAIL Protokoll können nur erfolgreich sein, wenn du die Protokoll-Spezifikation studierst. Die maßgeblichen RFCs sind in der Indy-Dokumentation angegeben.

Zumindest ansatzweise musst du das schon gemacht haben, da du ansonsten die Verben nicht kennen würdest um mit dem Server zu kommunizieren. In der Spezifikation solltest du aber auch etwas zum message format finden. Der Server beendet mehrzeilige Nachrichten immer mit einer letzten Zeile, die nur einen Punkt enthält.

Nun kannst du entweder in einer Schleife mit ReadLn() solange lesen, bis das du diese letzte Zeile empfangen hast - oder du verwendest gleich die Methode Capture().

Der Aufruf von ReadLn() müsste mit den Standardargumenten funktionieren, der line terminator ist dann #10 (LF, line feed). Der Effekt ist, dass dir eine String zurückgeliefert wird, sobald dieses Zeichen im Eingabepuffer entdeckt wird. Auf diese Weise erhältst du jede Zeile einer mehrzeiligen Nachricht einzeln. Ich habe es nicht ausprobiert, aber eventuell erreichst du ein besseres Ergebnis mit ReadLn(EOL), weil dann kein CR an die zurückgelieferte Zeile angehängt wird. Auf keinen Fall kann ReadLn('EOL') funktionieren. Du solltest selbst erkennen warum nicht.

Grüße vom marabu
  Mit Zitat antworten Zitat