मैं जीमेल अकाउंट में कैसे लॉगिन कर सकता हूं और घटक के साथ मेलबॉक्स में संदेशों की संख्या कैसे प्राप्त कर सकता हूं?किसी जीमेल खाते में लॉगिन कैसे करें और TIdIMAP4 के साथ मेलबॉक्स में संदेशों की संख्या प्राप्त करें?
किसी जीमेल खाते में लॉगिन कैसे करें और TIdIMAP4 के साथ मेलबॉक्स में संदेशों की संख्या प्राप्त करें?
उत्तर
अपने जीमेल के इनबॉक्स में संदेशों की कुल संख्या प्राप्त करने के लिए, आपको पहले अपने जीमेल आईएमएपी सर्वर से अपने क्रेडेंशियल से कनेक्ट करने की आवश्यकता है, जीमेल के इनबॉक्स मेलबॉक्स का चयन करें और उस चयनित मेलबॉक्स के लिए TotalMsgs
संपत्ति का मूल्य पढ़ें।
कोड में ऐसा लगता है कि हो सकता है इस प्रकार है (इस कोड OpenSSL आवश्यकता है, इसलिए मत भूलना एक रास्ता अपनी परियोजना के लिए दिखाई दे करने के लिए libeay32.dll
और ssleay32.dll
पुस्तकालयों डाल करने के लिए, आप विभिन्न संस्करणों और प्लेटफार्मों from here
में इंडी लिए OpenSSL लाइब्रेरी डाउनलोड कर सकते):
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;
आप वैकल्पिक रूप से एक demo project
जो (32-बिट अनुप्रयोगों के लिए i386 मंच डेल्फी 2009 में संकलित) के लिए OpenSSL v1.0.1c
संग्रहालय शामिल हैं डाउनलोड कर सकते हैं।
HUuuuuge धन्यवाद! :) –
आपका स्वागत है! – TLama
फ़ोल्डर "इनबॉक्स" में "i" ईमेल के विषय या निकाय के लिए आप ईमेल के माध्यम से कैसे लूप कर सकते हैं। यह काम नहीं कर रहा है .. IMAPClient.MailBox.MessageList.Messages [i] .बीडी –
क्या यह एक जीमेल प्रश्न है, या एक आईपैप सवाल है? –
@ डेविड हेफरन इंडी आईएमएपी। –
ठीक है, तो जीमेल भाग मुद्दा नहीं है। संभावित रूप से कोई भी इंपैप सर्वर हो सकता है जिसे आप संवाद करते हैं। –