Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Indy TIdSMTPServer.OnMsgReceive & UNICODE? (https://www.delphipraxis.net/163895-indy-tidsmtpserver-onmsgreceive-unicode.html)

Schucki 20. Okt 2011 18:13

Indy TIdSMTPServer.OnMsgReceive & UNICODE?
 
Hallo zusammen,

bisher habe ich mit den Indy Komponenten echt gute Erfahrung gemacht doch jetzt komme ich an meiner Schmerzgrenze weil ich einfach nicht erkennen kann wie ich in der Methode OnMsgReceive die Daten aus AMsg in UNICODE einlesen kann. Hintergrund ist der das ich die eMail als Textdatei auf die HDD speichern möchte und diese eben bei einigen Usern kyrillische Buchstaben enthalten kann, welche momentan in den Mails verschwinden. Warum ich diese aus dem AMsg Stream nicht auf die HDD bekomme ist mir noch ein Rätsel.

Bei beiden Varianten sind die Kyrillischen Zeichen aus der eMail nicht sichtbar sonder nur 4 Zeichen die vom Editor nicht dargestellt werden. :(

Kann mir einer verraten was ich falsch mache und wo mein Verständnisproblem ist?


Gruß Frank

Delphi-Quellcode:
{--- MsgReceive ---------------------------------------------------------------}
procedure TfrmMailServer.smtpsMsgReceive(ASender: TIdSMTPServerContext;
                                         AMsg: TStream;
                                         var LAction: TIdDataReply);
var strlMsg:TStringList;

begin
{1. Versuch direkt in eine Stringliste kopieren und speichern...}
  strlMsg:=TStringList.Create;
  strlMsg.LoadFromStream(AMsg);
  strlMsg.SaveToFile('C:\Temp\lastmsg_stringlist.txt');

{2. Versuch über eine IdMessage Komponente...}
  msgSmtp.Clear;
  msgSmtp.NoEncode:=False;
  msgSmtp.NoDecode:=False;
  msgSmtp.Encoding:=meMIME;
  msgSmtp.CharSet:='UTF-8';
  msgSmtp.LoadFromStream(AMsg);
  msgSmtp.SaveToFile('C:\Temp\lastmsg_idmsg.txt');

  {Dem Client ein Ok geben auch wenn die Daten falsch gespeichert wurden :-( }
  LAction:=dOk;

finally
  FreeAndNil(strlMsg);
end;

end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz