Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) IMAP Download All Email One at a TimeDemonstrates how to download every email in an IMAP mailbox one at a time as a MIME string or as an email object. (The MIME contains the full contents of the email including all attachments.)
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Imap, Email; ... procedure TForm1.Button1Click(Sender: TObject); var imap: HCkImap; success: Boolean; bUid: Boolean; mimeStr: PWideChar; i: Integer; n: Integer; email: HCkEmail; begin imap := CkImap_Create(); // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // Connect to an IMAP server. // Use TLS CkImap_putSsl(imap,True); CkImap_putPort(imap,993); success := CkImap_Connect(imap,'imap.someMailServer.com'); if (success <> True) then begin Memo1.Lines.Add(CkImap__lastErrorText(imap)); Exit; end; // Login success := CkImap_Login(imap,'myLogin','myPassword'); if (success <> True) then begin Memo1.Lines.Add(CkImap__lastErrorText(imap)); Exit; end; // Select an IMAP mailbox success := CkImap_SelectMailbox(imap,'Inbox'); if (success <> True) then begin Memo1.Lines.Add(CkImap__lastErrorText(imap)); Exit; end; // Once the mailbox is selected, the NumMessages property // will contain the number of messages in the mailbox. // You may loop from 1 to NumMessages to // fetch each message by sequence number. bUid := False; n := CkImap_getNumMessages(imap); for i := 1 to n do begin // Download the email by sequence number. mimeStr := CkImap__fetchSingleAsMime(imap,i,bUid); // ... your application may process each MIME string... end; // An alternative is to download each email in the form of an // email object, like this: for i := 1 to n do begin // Download the email by sequence number. email := CkImap_FetchSingle(imap,i,bUid); // ... your application may process the email object... CkEmail_Dispose(email); end; // Disconnect from the IMAP server. success := CkImap_Disconnect(imap); CkImap_Dispose(imap); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.