einfache Frage zum Emfpangen von eMails (Größenangabe der Bytes einer Mail des Servers)
-
Hallo,
ich hole Mails ab. Dazu füre ist LIST aus.
Ich merke mir die Nummer und die Größe der Mail.Nach RETR No wird die erste Zeile mit +OK ... übergangen
ab jetzt werden alle Bytes gezählt.Die Anzahl der Bytes-3 (".\r\n" - Endekennung) sollte eigentlich
der mit LIST ermittelten Größe sein.Das ist aber nicht immer der Fall.
Nun habe ich zwar ne Lösung um das Problem zu umschiffen.Wollte aber mal Fragen ob jemanden diese Problem auch schon aufgefallen ist.
Wenn nicht, müßte ich mein Prg nochmals überprüfen.Speziell muß wenn die Angabe nicht stimmt, zwischen 1 und 4 Bytes "nachgeladen" werden. Es fehlten aber auch schon mal 10 Bytes!
Ist die Angabe von LIST nur eine "in etwas" Größe ?
MfG
RB
-
RFC 1939 schrieb:
In order to simplify parsing, all POP3 servers are
required to use a certain format for scan listings. A
scan listing consists of the message-number of the
message, followed by a single space and the exact size of
the message in octets. Methods for calculating the exact
size of the message are described in the "Message Format"
section below. This memo makes no requirement on what
follows the message size in the scan listing. Minimal
implementations should just end that line of the response
with a CRLF pair. More advanced implementations may
include other information, as parsed from the message.
-
ok Danke, ich habe mein Prg nun so abgeändert, daß
es super funktioniert, wenn ich die Mails von pop.gmx.de holeEinfach führende . in einer Zeile nicht mit zählen und die Angaben stimmen
bei allen Mail exakt überein.nur das selbe Programm nun auf pop3.web.de angewendet will so garnicht
funktionieren, es werden zwischen 2 und ca. 200 Bytes zu viel gesendet.Habe nun die Überprüfung auf die Größe entfernt und prüfe nur noch CRLF.CRLF.
Damit funktioniert es dann auch an beiden Servern.
Selbst bei sehr kurzen überschaubaren Mails von 1375 Zeichen ( Serverangabe )
werden 1409 empfangen.Laut RFC 1939
11. Message Format
...
if the POP3 server host internally represents
end-of-line as a single character, then the POP3 server simply counts
each occurrence of this character in a message as two octets.
...Nun habe ich an 3 Mails mal ausgezählt und komme auf die Anzahl zu viel gesendeter Bytes wenn ich die Zeilen zähle.
Also schient der Server sich irgendwie zu verzählen ...
MfG
RB