Delphi Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Delphi Examples

Bounced Mail
Bz2
Character Encoding
CSV
Digital Certificates
Digital Signatures
DH Key Exchange
DSA
Email
Email Object
FTP
HTML-to-XML
HTTP
IMAP
Encryption
MHT / HTML Email
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

Unreleased...
Bzip2
LZW
Icon

Type Conversion

 

Article: Understanding COM References in Delphi

Fetch Single Email by UID or Sequence Number

Assuming the UID is known, download a single email by UID from an IMAP mail server.

Download Chilkat IMAP ActiveX

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

...

procedure TForm1.Button1Click(Sender: TObject);
var
imap: TChilkatImap;
success: Integer;
email: CHILKATMAILLib2_TLB.IChilkatEmail2;
uid: Integer;
isUid: Integer;
j: Integer;
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;

uid := 2014;
isUid := 1;

email := imap.FetchSingle(uid,isUid) As CHILKATMAILLib2_TLB.IChilkatEmail2;
if (not (email = nil )) then
  begin

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

    //  Display the Body property, which is the default body.
    //  If an email has an HTML body, the Body property contains
    //  the HTML source.  Otherwise it contains the plain-text
    //  body.
    Memo1.Lines.Add('---- EMAIL BODY ----');
    Memo1.Lines.Add(email.Body);
    Memo1.Lines.Add('--------------------');

    //  Display the recipients:

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

    for j := 0 to email.NumCC - 1 do
      begin
        Memo1.Lines.Add(email.GetCcName(j) + ', '
             + email.GetCcAddr(j));
      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);
    Memo1.Lines.Add(IntToStr(numAttach));

    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-2008 Chilkat Software, Inc. All Rights Reserved.

Mail Component · .NET Email Component · XML Parser