Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Delphi DLL) Download POP3 Email using UIDLsDemonstrates how to download POP3 email by first getting the complete set of UIDLs and then downloading email by calling FetchEmail for each UIDL. This is equivalent to calling CopyMail, except your application can process each email as it arrives instead of waiting for the entire bundle to be downloaded. Also, it's better protection against potential out-of-memory issues if your mailbox has a very large number of messages. There is no performance difference between fetching emails individually vs. calling CopyMail.
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, MailMan, StringArray, Email; ... procedure TForm1.Button1Click(Sender: TObject); var mailman: HCkMailMan; sa: HCkStringArray; i: Integer; n: Integer; uidl: PWideChar; email: HCkEmail; begin // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. // The mailman object is used for receiving (POP3) // and sending (SMTP) email. mailman := CkMailMan_Create(); // Set the POP3 server's hostname CkMailMan_putMailHost(mailman,'pop.someMailServer.com'); // Set the POP3 login/password. CkMailMan_putPopUsername(mailman,'myLogin'); CkMailMan_putPopPassword(mailman,'myPassword'); sa := CkMailMan_GetUidls(mailman); if (CkMailMan_getLastMethodSuccess(mailman) <> True) then begin Memo1.Lines.Add(CkMailMan__lastErrorText(mailman)); Exit; end; i := 0; n := CkStringArray_getCount(sa); while i < n do begin uidl := CkStringArray__getString(sa,i); email := CkMailMan_FetchEmail(mailman,uidl); if (CkMailMan_getLastMethodSuccess(mailman) <> True) then begin Memo1.Lines.Add(CkMailMan__lastErrorText(mailman)); CkStringArray_Dispose(sa); Exit; end; Memo1.Lines.Add('From: ' + CkEmail__from(email)); Memo1.Lines.Add('Subject: ' + CkEmail__subject(email)); CkEmail_Dispose(email); i := i + 1; end; CkStringArray_Dispose(sa); CkMailMan_Pop3EndSession(mailman); CkMailMan_Dispose(mailman); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.