Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
|
Using Client Certificate w/ IMAP SSLDemonstrates how to use a client-side certificate with an IMAP SSL connection. The SetSslClientCert method is called to specify a certificate to be used for the SSL connection. uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATMAILLib2_TLB, CHILKATIMAPLib_TLB, CHILKATCERTIFICATELib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var imap: TChilkatImap; success: Integer; certStore: CHILKATCERTIFICATELib_TLB.IChilkatCertStore; cert: CHILKATIMAPLib_TLB.IChilkatCert; cert2: TChilkatCert; messageSet: CHILKATIMAPLib_TLB.IMessageSet; fetchUids: Integer; bundle: CHILKATIMAPLib_TLB.IChilkatEmailBundle2; i: Integer; email: CHILKATMAILLib2_TLB.IChilkatEmail2; begin imap := TChilkatImap.Create(Self); // Anything unlocks the component and begins a fully-functional 30-day trial. success := imap.UnlockComponent('Anything for 30-day trial'); if (success <> 1) then begin ShowMessage(imap.LastErrorText); Exit; end; // To use a secure SSL connection, set SSL and the port: imap.Ssl := 1; // The typical port for IMAP SSL is 993 imap.Port := 993; // Load a certificate from a PFX file and use it. // Note: Other methods are available to load pre-installed // certificates from registry-based certificate stores. // Create an instance of a certificate store object, load a PFX file, // locate the certificate we need, and use it for signing. // (a PFX file may contain more than one certificate.) certStore := CoChilkatCertStore.Create(); // The 1st argument is the filename, the 2nd arg is the // PFX file's password: success := certStore.LoadPfxFile('myCertWithPrivateKey.pfx','secret'); if (success <> 1) then begin ShowMessage(certStore.LastErrorText); Exit; end; // Find the certificate by the subject common name: cert := certStore.FindCertBySubjectCN('Chilkat Software, Inc.') As CHILKATIMAPLib_TLB.IChilkatCert; if (cert = nil ) then begin ShowMessage(certStore.LastErrorText); Exit; end; // If a PFX file is known to contain a single certificate, // you may load it directly into a Chilkat certificate object. // This snippet of source code shows how: cert2 := TChilkatCert.Create(Self); // The 1st argument is the filename, the 2nd arg is the // PFX file's password: success := cert2.LoadPfxFile('tagtooga_secret.pfx','secret'); if (success <> 1) then begin ShowMessage(cert.LastErrorText); Exit; end; // Use the cert: imap.SetSslClientCert(cert As CHILKATIMAPLib_TLB.IChilkatCert); // Connect to an IMAP server. success := imap.Connect('mail.chilkatsoft.com'); if (success <> 1) then begin ShowMessage(imap.LastErrorText); Exit; end; // Login success := imap.Login('myLogin','myPassword'); if (success <> 1) then begin ShowMessage(imap.LastErrorText); Exit; end; // Select an IMAP mailbox success := imap.SelectMailbox('Inbox'); if (success <> 1) then begin ShowMessage(imap.LastErrorText); Exit; end; // We can choose to fetch UIDs or sequence numbers. fetchUids := 1; // Get the message IDs of all the emails in the mailbox messageSet := imap.Search('ALL',fetchUids); if (messageSet = nil ) then begin ShowMessage(imap.LastErrorText); Exit; end; // Fetch the emails into a bundle object: bundle := imap.FetchBundle(messageSet); if (bundle = nil ) then begin ShowMessage(imap.LastErrorText); Exit; end; // Loop over the bundle and display the FROM and SUBJECT of each. for i := 0 to bundle.MessageCount - 1 do begin email := bundle.GetEmail(i) As CHILKATMAILLib2_TLB.IChilkatEmail2; Memo1.Lines.Add(email.From); Memo1.Lines.Add(email.Subject); Memo1.Lines.Add('--'); end; // Disconnect from the IMAP server. imap.Disconnect(); end; |
Need a specific example? Send a request to support@chilkatsoft.com
© 2000-2008 Chilkat Software, Inc. All Rights Reserved.