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
(Visual FoxPro) Fetch 1st N Headers of Search ResultsCalls Search to get a message set, then downloads the 1st N messages in the message set. There are two equivalent ways of doing it: (1) iterate from 0 to N-1 and download each message individually, or (2) create a new message set that contains the 1st N messages and pass it to FetchHeaders. Both are demonstrated here.
LOCAL loImap LOCAL lnSuccess LOCAL loMessageSet LOCAL lnFetchUids LOCAL lnNumFound LOCAL lnUpperBound LOCAL i LOCAL lnBUid LOCAL loEmail LOCAL loFirstTen LOCAL loBundle * This example assumes the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.Imap') loImap = CreateObject('Chilkat.Imap') * Connect to an IMAP server. * Use TLS loImap.Ssl = 1 loImap.Port = 993 lnSuccess = loImap.Connect("imap.someMailServer.com") IF (lnSuccess <> 1) THEN ? loImap.LastErrorText RELEASE loImap CANCEL ENDIF * Login lnSuccess = loImap.Login("****","****") IF (lnSuccess <> 1) THEN ? loImap.LastErrorText RELEASE loImap CANCEL ENDIF * Select an IMAP mailbox lnSuccess = loImap.SelectMailbox("Inbox") IF (lnSuccess <> 1) THEN ? loImap.LastErrorText RELEASE loImap CANCEL ENDIF * We can choose to fetch UIDs or sequence numbers. lnFetchUids = 1 * Get the message IDs of all the emails in the mailbox loMessageSet = loImap.Search("ALL",lnFetchUids) IF (loImap.LastMethodSuccess = 0) THEN ? loImap.LastErrorText RELEASE loImap CANCEL ENDIF lnNumFound = loMessageSet.Count IF (lnNumFound = 0) THEN ? "No messages found." RELEASE loMessageSet RELEASE loImap CANCEL ENDIF * Get the 1st 10 messages in messageSet. lnUpperBound = 10 IF (lnNumFound < lnUpperBound) THEN lnUpperBound = lnNumFound ENDIF i = 0 lnBUid = loMessageSet.HasUids DO WHILE i < lnUpperBound loEmail = loImap.FetchSingleHeader(loMessageSet.GetId(i),lnBUid) IF (loImap.LastMethodSuccess = 0) THEN ? loImap.LastErrorText RELEASE loMessageSet RELEASE loImap CANCEL ELSE * Do whatever is needed with the email.. * .... RELEASE loEmail ENDIF i = i + 1 ENDDO * Alternatively, create a new message set containing the 1st 10 message id's (UID's) * from the search results message set: * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.MessageSet') loFirstTen = CreateObject('Chilkat.MessageSet') FOR i = 0 TO lnUpperBound - 1 loFirstTen.InsertId(loMessageSet.GetId(i)) NEXT RELEASE loMessageSet * Download the 1st ten headers: loBundle = loImap.FetchHeaders(loFirstTen) IF (loImap.LastMethodSuccess = 0) THEN RELEASE loFirstTen ? loImap.LastErrorText RELEASE loImap RELEASE loFirstTen CANCEL ENDIF * Other examples show how to iterate over the emails contained within the bundle... * Disconnect from the IMAP server. lnSuccess = loImap.Disconnect() RELEASE loFirstTen RELEASE loBundle RELEASE loImap RELEASE loFirstTen |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.