2012-11-28 13 views

cevap

12

Gmail'in gelen kutunuzdaki toplam ileti sayısını elde etmek için öncelikle Gmail IMAP sunucusuna kimlik bilgilerinizle bağlanın, Gmail'in gelen kutusu posta kutusunu seçin ve bu seçili posta kutusu için TotalMsgs özelliğinin değerini okuyun. o görünüyor isteyebilirsiniz kodunda

aşağıdaki (bu kod OpenSSL'yi gerektirir, bu nedenle proje için görünür bir yola libeay32.dll ve ssleay32.dll kütüphaneleri koymak unutmayın, siz farklı sürümleri ve platformlar from here yılında Indy üzere OpenSSL kütüphanelerini indirebilirsiniz):

uses 
    IdIMAP4, IdSSLOpenSSL, IdExplicitTLSClientServerBase; 

function GetGmailMessageCount(const UserName, Password: string): Integer; 
var 
    IMAPClient: TIdIMAP4; 
    OpenSSLHandler: TIdSSLIOHandlerSocketOpenSSL; 
begin 
    Result := 0; 
    IMAPClient := TIdIMAP4.Create(nil); 
    try 
    OpenSSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); 
    try 
     OpenSSLHandler.SSLOptions.Method := sslvSSLv3; 
     IMAPClient.IOHandler := OpenSSLHandler; 
     IMAPClient.Host := 'imap.gmail.com'; 
     IMAPClient.Port := 993; 
     IMAPClient.UseTLS := utUseImplicitTLS; 
     IMAPClient.Username := UserName; 
     IMAPClient.Password := Password; 
     IMAPClient.Connect; 
     try 
     if IMAPClient.SelectMailBox('INBOX') then 
      Result := IMAPClient.MailBox.TotalMsgs; 
     finally 
     IMAPClient.Disconnect; 
     end; 
    finally 
     OpenSSLHandler.Free; 
    end; 
    finally 
    IMAPClient.Free; 
    end; 
end; 

procedure TForm1.ConnectButtonClick(Sender: TObject); 
begin 
    ShowMessage('Total count of messages in inbox: ' + 
    IntToStr(GetGmailMessageCount('[email protected]', 'Password'))); 
end; 

İsterseniz Delphi 2009'da derlenmiş 32 bit uygulamalar için i386 platformu() için OpenSSL v1.0.1c kütüphaneleri içeren demo project indirebilir.

+1

HUuuuuge teşekkürler! :) –

+0

Rica ederim! – TLama

+0

E-postayı konuya veya "i" klasörüne "gelen kutusu" klasörüne sığdırmak için nasıl başvurabilirsiniz. Bu işe yaramaz .. IMAPClient.MailBox.MessageList.Messages [i] .Body –

İlgili konular