Mega Code Archive

 
Categories / Delphi / Ide Indy
 

Accessing GMail account with Indy

Title: Accessing GMail account with Indy Question: Access GMail accounts va POP3 SSL Answer: GMail is the free mail service of Google. Recently, the GMail accounts can also be accessed by means of POP3 and SMTP protocols (that is to say, to use them through a mail client program like OutLook) It has a peculiarity, the access to GMail through POP3 uses encriptacin SSL and No-Standard ports. This tip explains briefly how to connect with POP3 service of GMail through the Indy components. You need to put in one form these components: ul liA TidPop3 (idPop31) (Indy Clients Tab)/li liA TidMessage (idMessage1) (Indy Misc Tab)/li liA TIdSSLIOHandlerSocket (IdSSLIOHandlerSocket1) (Indy I/O handlers Tab)/li liA TMemo (Memo1)/li liA TButton (Button1)/li /ul So that the SSL works, the Indy uses the OpenSSL library, that is GPL and that another people do, for that reason, you have to download it so that the TIdSSLIOHandlerSocket can use it. I for this test, have downloaded it of: http://indy.fulgan.com/SSL/and the file that I have used is indy_openssl096.zip Descompress the the ZIP and put the two DLLs in the directory of your project. Now, make that idPop31 uses the IdSSLIOHandlerSocket1 putting it in its IOHandler property. Set the name of the pop server in the Host property of idPop31, that in the case of Gmail is pop.gmail.com, set the port, that in this case is special and is 995 and set the username and your password in the idPop31 component. Once made, to test the invention, put this code in the OnCLick de Button1: procedure TForm1.Button1Click(Sender: TObject); var n, nummsgs : integer; begin Memo1.Lines.Clear; //Conectamos! idpop31.Connect(0); //Obtenemos el numero de emails que tenemos NumMsgs:=idpop31.CheckMessages; Memo1.lines.add( 'Emails:' +IntToStr(NumMsgs) ); for n:=1 to NumMsgs do begin idpop31.RetrieveHeader(n,idMessage1); Memo1.Lines.Add( 'Email N:'+IntToStr(n)+ ' De:'+idMessage1.From.Text+ ' Tema:'+idMessage1.Subject ); idMessage1.Clear; end; idpop31.Disconnect; end; and you will have an example that will obtain the headers of the emails of GMail account. NOTE: Yo need an actual version of the Indy library. If your Delphi hasn't, dont worry, you can download it from the oficcial website: http://www.indyproject.org/