Hallo,
ich kann mit folgendem Code von JEDEM normalen POP3-Server Mails abrufen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| 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!
Moderiert von
raziel: Code- durch Delphi-Tags ersetzt