Delphi Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Bz2
Character Encoding
CSV
DKIM / DomainKey
Digital Certificates
Digital Signatures
DH Key Exchange
DSA
Email
Email Object
FTP
HTML-to-XML
HTTP
IMAP
Encryption
MHT / HTML Email
NTLM
POP3
RSA
S/MIME
SMTP
Socket
Spider
SFTP
SSH
SSH Key
SSH Tunnel
String
Tar
Upload
XML
XMP
Zip Compression

More Examples...
Byte Array
FileAccess
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
LZW

Type Conversion

 

Article: Understanding COM References in Delphi

Read IMAP Email Headers

Call FetchHeaders to download only the email headers.

Download Chilkat IMAP ActiveX

uses
    Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    Dialogs, StdCtrls,
    CHILKATMAILLib2_TLB,
    CHILKATIMAPLib_TLB,
    OleCtrls;

...

procedure TForm1.Button1Click(Sender: TObject);
var
imap: TChilkatImap;
success: Integer;
messageSet: CHILKATIMAPLib_TLB.IMessageSet;
fetchUids: Integer;
bundle: CHILKATIMAPLib_TLB.IChilkatEmailBundle2;
i: Integer;
email: CHILKATIMAPLib_TLB.IChilkatEmail2;
j: Integer;
name: String;
addr: String;
numAttach: Integer;
attachSize: Integer;

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;

//  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('****','****');
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;

//  When downloading headers, each email object contains
//  (obviously) the headers, but the body will be missing.
//  Also, attachments will not be included.  However, it is
//  possible to get information about the attachments
//  as well as the complete size of the email.

bundle := imap.FetchHeaders(messageSet);
if (bundle = nil ) then
  begin

    ShowMessage(imap.LastErrorText);
    Exit;
  end;

//  Loop over the email objects and display information
//  about each:

for i := 0 to bundle.MessageCount - 1 do
  begin

    email := bundle.GetEmail(i) As CHILKATIMAPLib_TLB.IChilkatEmail2;

    //  Display the From and Subject
    Memo1.Lines.Add(email.From);
    Memo1.Lines.Add(email.Subject);

    //  Display the recipients:

    for j := 0 to email.NumTo - 1 do
      begin
        name := email.GetToName(j);
        addr := email.GetToAddr(j);
        Memo1.Lines.Add(name + ', ' + addr);
      end;

    for j := 0 to email.NumCC - 1 do
      begin
        name := email.GetCcName(j);
        addr := email.GetCcAddr(j);
        Memo1.Lines.Add(name + ', ' + addr);
      end;

    //  Show the total size of the email, including body and attachments:
    Memo1.Lines.Add(IntToStr(email.Size));

    //  When a full email is downloaded, we would use the
    //  email.NumAttachments property in conjunction with the
    //  email.GetMailAttach* methods.
    //  However, when an email object contains only the header,
    //  we need to access the attachment info differently:
    numAttach := imap.GetMailNumAttach(email As CHILKATIMAPLib_TLB.IChilkatEmail2);
    for j := 0 to numAttach - 1 do
      begin
        Memo1.Lines.Add(imap.GetMailAttachFilename(email As CHILKATIMAPLib_TLB.IChilkatEmail2,j));
        attachSize := imap.GetMailAttachSize(email As CHILKATIMAPLib_TLB.IChilkatEmail2,j);
        Memo1.Lines.Add('    size = ' + IntToStr(attachSize)
             + ' bytes');
      end;

    Memo1.Lines.Add('--');

  end;

//  Disconnect from the IMAP server.
imap.Disconnect();


end;

 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2009 Chilkat Software, Inc. All Rights Reserved.

Mail Component · .NET Email Component · XML Parser