Sample code for 30+ languages & platforms
AutoIt

Fetch a Range of POP3 Messages

See more POP3 Examples

Demonstrates the Chilkat MailMan.FetchRange method, which retrieves a range of messages from the POP3 mailbox and appends them to an EmailBundle. The arguments are keepOnServer, headersOnly, numBodyLines, a zero-based inclusive startIndex and endIndex, and the EmailBundle. This example fetches the first five messages.

Background: Fetching a range instead of everything is useful for paging through a large mailbox, or resuming after an interruption — download messages 0–99, then 100–199, and so on. Combined with headersOnly, it lets you build a quick message-list view without pulling full bodies and attachments up front.

Chilkat AutoIt Downloads

AutoIt
Local $bSuccess = False

;  Demonstrates the MailMan.FetchRange method, which retrieves a range of messages from the
;  POP3 mailbox and appends them to an EmailBundle.  The arguments are keepOnServer,
;  headersOnly, numBodyLines, startIndex, endIndex, and the EmailBundle.  The indexes are
;  zero-based and inclusive.

$oMailman = ObjCreate("Chilkat.MailMan")

;  Configure the POP3 server connection.
$oMailman.MailHost = "pop.example.com"
$oMailman.MailPort = 995
$oMailman.PopSsl = True
$oMailman.PopUsername = "user@example.com"
$oMailman.PopPassword = "myPassword"

;  Fetch the first 5 messages (indexes 0 through 4), full bodies, leaving them on the server.
;  keepOnServer=True, headersOnly=False (fetch the entire message).
;  Note: numBodyLines only applies when headersOnly is True (it sets how many lines of the
;  body to include along with the headers).  When headersOnly is False, the entire message
;  is fetched and numBodyLines is ignored.
$oBundle = ObjCreate("Chilkat.EmailBundle")

$bSuccess = $oMailman.FetchRange(True,False,0,0,4,$oBundle)
If ($bSuccess = False) Then
    ConsoleWrite($oMailman.LastErrorText & @CRLF)
    Exit
EndIf

Local $iN = $oBundle.MessageCount
ConsoleWrite("Fetched " & $iN & " messages." & @CRLF)

$oEmail = ObjCreate("Chilkat.Email")
Local $i
For $i = 0 To $iN - 1
    $bSuccess = $oBundle.EmailAt($i,$oEmail)
    ConsoleWrite($oEmail.Subject & @CRLF)
Next

;  Note: Explicitly connecting/authenticating is optional.  Chilkat MailMan automatically
;  connects and authenticates -- using the property settings above -- whenever a server
;  operation requires it.  Calling the explicit connect/authenticate methods can still be
;  helpful to determine whether a failure occurs while connecting or while authenticating.