Sample code for 30+ languages & platforms
Go

Retrieve UIDL's from POP3 Server

Retrieve a list of UIDLs from a POP3 server. UIDLs are unique identifiers, 1 to 70 characters long, composed of characters ranging from 0x21 to 0x7E. These identifiers uniquely distinguish messages within a mailbox and remain consistent across sessions.

Chilkat Go Downloads

Go
    success := false

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

    mailman := chilkat.NewMailMan()

    mailman.SetMailHost("pop.example.com")

    mailman.SetPopUsername("myLogin")
    mailman.SetPopPassword("myPassword")

    mailman.SetMailPort(995)
    mailman.SetPopSsl(true)

    stUidls := chilkat.NewStringTable()
    success = mailman.FetchUidls(stUidls)
    if success == false {
        fmt.Println(mailman.LastErrorText())
        mailman.DisposeMailMan()
        stUidls.DisposeStringTable()
        return
    }

    // Download each email by UIDL.
    email := chilkat.NewEmail()

    count := stUidls.Count()
    i := 0
    for i < count {
        // Download the full email.
        uidl := stUidls.StringAt(i)
        success = mailman.FetchByUidl(*uidl,false,0,email)
        if success == false {
            fmt.Println(mailman.LastErrorText())
            mailman.DisposeMailMan()
            stUidls.DisposeStringTable()
            email.DisposeEmail()
            return
        }

        fmt.Println(i)
        fmt.Println("UIDL: ", *uidl)
        fmt.Println("From: ", email.From())
        fmt.Println("Subject: ", email.Subject())

        i = i + 1
    }

    mailman.Pop3EndSession()

    mailman.DisposeMailMan()
    stUidls.DisposeStringTable()
    email.DisposeEmail()