Hallo,
ich habe das dumpfe Gefühl, dass mir die
Indy-Komponente IdMessagebei "savetofile" und "savetostream" bei MultiPart-Nachrichten den plaintext verwirft - seht euch mal folgendes an:
Delphi-Quellcode:
vStream := TStringStream.Create('');
ShowMessage(TidText(imessage.MessageParts[0]).Body.Text); //gibt mir korrekt den Text aus
imessage.SaveToFile(Application.ExeName+'.em',false);
iMessage.Clear;
iMessage.LoadFromFile(Application.ExeName+'.em',false);
ShowMessage(TidText(imessage.MessageParts[0]).Body.Text); //gibt mir nur noch "This is a multi-part message in MIME format"
Ich sollte aber doch beide male den korrekten Text bekommen, oder? Wenn ich mir die erzeugte Datei ansehe, finde ich nirgends mehr meinen Nachrichtentext (der mir beim 1. Mal Showmessage ja noch richtig angezeigt wird).
<schnipp>
...
X-Library: Indy 9.00.10
This is a multi-part message in MIME format
das ist ja die Präambel für eine Multipart-Nachricht, so weit so gut.
--=_NextPart_2rfkindysadvnqw3nerasdf
Content-Type: text/plain
Content-Transfer-Encoding: 7bit
This is a multi-part message in MIME format.
Hier sollte ja eigentlich der Nachrichtentext stehen...!
--=_NextPart_2rfkindysadvnqw3nerasdf
Content-Type: application/octet-stream; name="cloud.jpg";
name="cloud.jpg"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="cloud.jpg";
filename="cloud.jpg"
/9j/4AAQSkZJRgABAQEBLAEsAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsK
CwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQU
...
FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFB QUFBQUFBT/wAARCAJYAyADASIA
A
</schnapp>
Habt Ihr eine Erklärung?
Vielen Dank!
Simon