Sample code for 30+ languages & platforms
Visual FoxPro

List Email UIDs

List the UIDs of each email in a mailbox.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loImap
LOCAL lnFetchUids
LOCAL loMessageSet
LOCAL i
LOCAL n

lnSuccess = 0

loImap = CreateObject('Chilkat.Imap')

* This example requires the Chilkat API to have been previously unlocked.
* See Global Unlock Sample for sample code.

* Connect to an IMAP server.
* Use TLS
loImap.Ssl = 1
loImap.Port = 993
lnSuccess = loImap.Connect("MY-IMAP-DOMAIN")
IF (lnSuccess = 0) THEN
    ? loImap.LastErrorText
    RELEASE loImap
    CANCEL
ENDIF

* Login
lnSuccess = loImap.Login("MY-IMAP-LOGIN","MY-IMAP-PASSWORD")
IF (lnSuccess = 0) THEN
    ? loImap.LastErrorText
    RELEASE loImap
    CANCEL
ENDIF

* Select an IMAP mailbox
lnSuccess = loImap.SelectMailbox("Inbox")
IF (lnSuccess = 0) THEN
    ? loImap.LastErrorText
    RELEASE loImap
    CANCEL
ENDIF

* Get the message IDs of all the emails in the mailbox
* We can choose to fetch UIDs or sequence numbers.
lnFetchUids = 1
loMessageSet = CreateObject('Chilkat.MessageSet')
lnSuccess = loImap.QueryMbx("ALL",lnFetchUids,loMessageSet)
IF (lnSuccess = 0) THEN
    ? loImap.LastErrorText
    RELEASE loImap
    RELEASE loMessageSet
    CANCEL
ENDIF

i = 0
n = loMessageSet.Count
DO WHILE i < n
    ? STR(loMessageSet.GetId(i))
    i = i + 1
ENDDO

* Disconnect from the IMAP server.
lnSuccess = loImap.Disconnect()

RELEASE loImap
RELEASE loMessageSet