Hallo,
du hast mich nicht verstanden. Ich meinte: Eine Zeile, die nur einen Punkt enthält, kommt in einer realen Kommunikation nicht vor und ist deshalb als Ende-Marker völlig problemlos.
SMTP-Protokoll, Problem 2:
Maximale Länge einer Zeile im Payload (Text): 998 Bytes (eigentlich 1000, da sind aber "\r\n" eingeschlossen.)
willst du provozieren, oder dich dumm stellen, oder weißt du es wirklich nicht?
Es wird also ggf. auch automatisch umgebrochen.
Genau. Und das kann man ungestraft und ohne Einfluss auf die Nutzdaten tun, wenn man den erzwungenen Umbruch (gemäß SMTP-Spec übrigens nicht \r\n, sondern nur \r) mit einem Istgleich-Zeichen am Ende der Zeile maskiert. So funktioniert das bei Quoted-Printable.
[ADD]Echte Zeilenumbrüche in den Nutzdaten werden übrigens ebenso wie Byte-Werte oberhalb von 0x80 mit einem Istgleich-Zeichen gefolgt vom Hex-Code dargestellt, also beispielsweise =0D=0A. Also ähnlich wie beim Percent-Encoding in URLs, nur dass das Escape-Zeichen hier das Istgleich-Zeichen ist.[/ADD]
Ergo: Solche Zeilen ("\r\n.\r\n") können auch rein zufällig entstehen.
Nein, die muss man mutwillig konstruieren. Und wenn sie wirklich mal zufällig entstehen, werden sie maskiert (=2E).
Einen schönen Tag noch
Martin
Мир для України.