Hallo,
ich kann mit folgendem Code von JEDEM normalen
POP3-Server Mails abrufen:
Delphi-Quellcode:
if not pop.Connected then pop.Connect;
MsgCount := POP.CheckMessages;
for i := 1 to MsgCount do begin
POP.Retrieve(i, msg);
if msg.ContentType='text/plain' then
bodytext:=msg.Body.Text;
for j:= 0 to Pred(msg.MessageParts.Count) do begin
if msg.MessageParts.Items[j] is TIdText then bodytext:=(Msg.MessageParts[j] as TIdText).Body.Text;
Dies klappt bei Textmails,
HTML Mails usw...
Nun habe ich jedoch versucht das ganze über SSL (ist notwendig bei GMail) bei GMail zu machen.
Habe die OpenSSL DLLs ins Verzeichnis kopiert, den
Indy SSL Handler auf die Form gezogen und sslvSSLv2 sowie "UseImplicitTSL" eingestellt.
Natürlich ebenso pop.googlemail.com und Port995.
Nun schien es anfangs zu funktionieren...Über POP.RetrieveHeaders(...) bekam ich Absender,Betreff und Datum.
Und über RetriveRaw bekam ich die komplette Nachricht eben im RAW-Format angezeigt. So schön so gut.
Nun wollte ich die Nachrichten wie oben ganz normal abrufen. Aber Pustekuchen: Der Body blieb zu 95% leer!
MessageParts.Count zeigte er mir bei allen Mails IMMER 0 an und im msg.body.text war auch nur sehr selten etwas drin (nur bei expliziten Textmails)!
Ich weiss nicht woran es liegt, aber evtl könnte es daran liegen das
Msg.IsBodyEncodingRequired auf true steht....aber was IsBodyEncodingRequired bedeutet weiss ich nicht...bei google findet man auch so gut wie nichts dazu
Hoffe ihr könnt mir helfen!
PS: Das ist das einzige was ich dazu gefunden hab:
http://www.indyproject.org/docsite/h...gRequired.html