Chilkat HOME ASP Visual Basic VB.NET C# Visual C++ C MFC Delphi FoxPro Java Perl PHP Python Ruby SQL Server VBScript
Read IMAP Email HeadersCall FetchHeaders to download only the email headers. 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.