Sample code for 30+ languages & platforms
Delphi DLL

Find the "Sent" IMAP Mailbox

See more IMAP Examples

Find the "Sent" IMAP mailbox. Also finds the Junk and Trash mailboxes..

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Imap, Mailboxes;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
imap: HCkImap;
refName: PWideChar;
wildcardedMailbox: PWideChar;
subscribed: Boolean;
mboxes: HCkMailboxes;
i: Integer;

begin
success := False;

// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

imap := CkImap_Create();

CkImap_putSsl(imap,True);
CkImap_putPort(imap,993);
success := CkImap_Connect(imap,'imap.yourmailserver.com');
if (success = False) then
  begin
    Memo1.Lines.Add(CkImap__lastErrorText(imap));
    Exit;
  end;

// Login or authenticate in some way..
success := CkImap_Login(imap,'your_login','your_password');
if (success = False) then
  begin
    Memo1.Lines.Add(CkImap__lastErrorText(imap));
    Exit;
  end;

// Get the list of mailboxes.
refName := '';
wildcardedMailbox := '*';
subscribed := False;

mboxes := CkMailboxes_Create();
success := CkImap_MbxList(imap,subscribed,refName,wildcardedMailbox,mboxes);
if (success = False) then
  begin
    Memo1.Lines.Add(CkImap__lastErrorText(imap));
    Exit;
  end;

// The mailbox with the "/Sent" flag is the "Sent" mailbox.
// Likewise for Junk and Trash..
i := 0;
while i < CkMailboxes_getCount(mboxes) do
  begin
    if (CkMailboxes_HasFlag(mboxes,i,'\\Sent') = True) then
      begin
        Memo1.Lines.Add('Sent mailbox: ' + CkMailboxes__getName(mboxes,i));
      end;
    if (CkMailboxes_HasFlag(mboxes,i,'\\Junk') = True) then
      begin
        Memo1.Lines.Add('Junk mailbox: ' + CkMailboxes__getName(mboxes,i));
      end;
    if (CkMailboxes_HasFlag(mboxes,i,'\\Trash') = True) then
      begin
        Memo1.Lines.Add('Trash mailbox: ' + CkMailboxes__getName(mboxes,i));
      end;
    i := i + 1;
  end;

// Disconnect from the IMAP server.
success := CkImap_Disconnect(imap);

CkImap_Dispose(imap);
CkMailboxes_Dispose(mboxes);

end;