Sample code for 30+ languages & platforms
PureBasic

Get the Size of a POP3 Message by UIDL

See more POP3 Examples

Demonstrates the Chilkat MailMan.GetSizeByUidl method, which returns the size, in bytes, of the email on the POP3 server identified by a UIDL. The size includes the full message content, including attachments, and the method returns -1 on error. This example looks up a message's size by its UIDL.

Background: A UIDL ("unique ID listing") is POP3's stable identifier for a message — it stays the same across sessions as long as the message remains in the mailbox. Checking a message's size before downloading lets a client skip or defer very large messages, enforce size limits, or show a progress estimate. You can obtain the available UIDLs from GetMailboxInfoXml or FetchUidls.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkMailMan.pb"

Procedure ChilkatExample()

    ;  Demonstrates the MailMan.GetSizeByUidl method, which returns the size, in bytes, of the
    ;  email on the POP3 server identified by a UIDL.  The size includes the full message
    ;  content, including attachments.  Returns -1 on error.

    mailman.i = CkMailMan::ckCreate()
    If mailman.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ;  Configure the POP3 server connection.
    CkMailMan::setCkMailHost(mailman, "pop.example.com")
    CkMailMan::setCkMailPort(mailman, 995)
    CkMailMan::setCkPopSsl(mailman, 1)
    CkMailMan::setCkPopUsername(mailman, "user@example.com")
    CkMailMan::setCkPopPassword(mailman, "myPassword")

    ;  Get the size of a specific message by its UIDL.
    sizeBytes.i = CkMailMan::ckGetSizeByUidl(mailman,"0000000123abcdef")
    Debug "Message size (bytes): " + Str(sizeBytes)

    ;  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.


    CkMailMan::ckDispose(mailman)


    ProcedureReturn
EndProcedure