Delphi DLL Requires Chilkat v11.0.0+
Delphi DLL
IMAP Download All Email One at a Time
Demonstrates 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.)Chilkat Delphi DLL Downloads
var
success: Boolean;
imap: HCkImap;
bUid: Boolean;
mimeStr: PWideChar;
i: Integer;
n: Integer;
email: HCkEmail;
begin
success := False;
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.example.com');
if (success = False) then
begin
Memo1.Lines.Add(CkImap__lastErrorText(imap));
Exit;
end;
// Login
success := CkImap_Login(imap,'myLogin','myPassword');
if (success = False) then
begin
Memo1.Lines.Add(CkImap__lastErrorText(imap));
Exit;
end;
// Select an IMAP mailbox
success := CkImap_SelectMailbox(imap,'Inbox');
if (success = False) 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:
email := CkEmail_Create();
for i := 1 to n do
begin
// Download the email by sequence number.
success := CkImap_FetchEmail(imap,False,i,bUid,email);
// ... your application may process the email object...
end;
// Disconnect from the IMAP server.
success := CkImap_Disconnect(imap);
CkImap_Dispose(imap);
CkEmail_Dispose(email);