Hi,
so - da hast Du mich ja gerade ganz verrückt gemacht. Dachte schon, es sei ein Bug drin
Lösung mit einem TIdPOP3 und einem TIdSSLIOHandlerSockenOpenSSL (als IOHandler für TIdPOP3):
Delphi-Quellcode:
IdPOP31.Host := '
pop.gmail.com';
IdPOP31.Port := 995;
// Port für Secure POP3
IdPOP31.UseTLS := utUseImplicitTLS;
// wichtig, gmail akzeptiert nichts anderes!
IdPOP31.Username := '
meinname@gmail.com';
IdPOP31.Password := '
passwort';
IdPOP31.Connect;
Alles andere auf Default lassen.
Ergebnis (per StatusInfo ausgelesen):
Zitat:
Resolving hostname pop.gmail.com.
Connecting to 74.125.79.111.
SSL status: "before/connect initialization"
SSL status: "before/connect initialization"
SSL status: "SSLv3 write client hello A"
SSL status: "SSLv3 read server hello A"
SSL status: "SSLv3 read server certificate A"
SSL status: "SSLv3 read server done A"
SSL status: "SSLv3 write client key exchange A"
SSL status: "SSLv3 write change cipher spec A"
SSL status: "SSLv3 write finished A"
SSL status: "SSLv3 flush data"
SSL status: "SSLv3 read server session ticket A"
SSL status: "SSLv3 read finished A"
SSL status: "SSL negotiation finished successfully"
SSL status: "SSL negotiation finished successfully"
Cipher: name = RC4-MD5; description = RC4-MD5 SSLv3 Kx=RSA Au=RSA Enc=RC4(128) Mac=MD5
; bits = 128; version = TLSv1/SSLv3;
Connected.
Anzahl E-Mails:0
Disconnecting.
SSL status: "SSL negotiation finished successfully"
Disconnected.
Fürs das Checken hab ich noch eine TIdMessage Komponente auf die Form gezogen und diesen Code verwendet:
Delphi-Quellcode:
var
i, MsgAnz: Integer;
begin
IdPOP31.Host := '
pop.gmail.com';
IdPOP31.Port := 995;
// Port für Secure POP3
IdPOP31.UseTLS := utUseImplicitTLS;
// wichtig, gmail akzeptiert nichts anderes!
IdPOP31.Username := '
meinname@gmail.com';
IdPOP31.Password := '
passwort';
IdPOP31.Connect;
// mails checken
MsgAnz := IdPOP31.CheckMessages;
Memo1.Lines.Add('
Anzahl E-Mails:' + IntToStr(MsgAnz));
for i:= 1
to MsgAnz
do
begin
idpop31.RetrieveHeader(i, IdMessage1);
Memo1.Lines.Add('
E-Mail Nr:' + IntToStr(i)+ sLineBreak +
'
Von:' + IdMessage1.From.Text + sLineBreak +
'
Betreff:' + IdMessage1.Subject);
IdMessage1.Clear;
end;
IdPOP31.Disconnect;
end;
Natürlich muß
POP3 in den GMail-Einstellungen per Webinterface explizit eingeschaltet werden. Dann geht das mit den aktuellen Indys und OpenSSL aber einwandfrei. Ich hoffe, es hilft Dir etwas weiter!
Gruß Assertor