PowerShell
PowerShell
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 PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $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.
$mailman = New-Object Chilkat.MailMan
# Configure the POP3 server connection.
$mailman.MailHost = "pop.example.com"
$mailman.MailPort = 995
$mailman.PopSsl = $true
$mailman.PopUsername = "user@example.com"
$mailman.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.
$bundle = New-Object Chilkat.EmailBundle
$success = $mailman.FetchRange($true,$false,0,0,4,$bundle)
if ($success -eq $false) {
$($mailman.LastErrorText)
exit
}
$n = $bundle.MessageCount
$("Fetched " + $n + " messages.")
$email = New-Object Chilkat.Email
for ($i = 0; $i -le $n - 1; $i++) {
$success = $bundle.EmailAt($i,$email)
$($email.Subject)
}
# 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.