Sample code for 30+ languages & platforms
PureBasic

Transition from MailMan.TransferMultipleMime to MailMan.FetchMimeBd

Provides instructions for replacing deprecated TransferMultipleMime method calls with FetchMimeBd.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkStringTable.pb"
IncludeFile "CkBinData.pb"
IncludeFile "CkMailMan.pb"
IncludeFile "CkStringArray.pb"

Procedure ChilkatExample()

    success.i = 0

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

    ; ...
    ; ...

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

    CkStringArray::ckAppend(saUidls,"aaa")
    CkStringArray::ckAppend(saUidls,"bbb")
    CkStringArray::ckAppend(saUidls,"ccc")

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

    CkStringTable::ckAppend(stUidls,"aaa")
    CkStringTable::ckAppend(stUidls,"bbb")
    CkStringTable::ckAppend(stUidls,"ccc")

    ; ------------------------------------------------------------------------
    ; The TransferMultipleMime method is deprecated:

    sa.i = CkMailMan::ckTransferMultipleMime(mailman,saUidls)
    If CkMailMan::ckLastMethodSuccess(mailman) = 0
        Debug CkMailMan::ckLastErrorText(mailman)
        CkMailMan::ckDispose(mailman)
        CkStringArray::ckDispose(saUidls)
        CkStringTable::ckDispose(stUidls)
        ProcedureReturn
    EndIf

    ; ...
    ; ...

    CkStringArray::ckDispose(sa)

    ; ------------------------------------------------------------------------
    ; Do the equivalent using FetchMimeBd.

    CkMailMan::setCkImmediateDelete(mailman, 0)

    success = 0
    bdMime.i = CkBinData::ckCreate()
    If bdMime.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    numUidls.i = CkStringTable::ckCount(stUidls)
    i.i = 0
    While i < numUidls
        success = CkMailMan::ckFetchMimeBd(mailman,CkStringTable::ckStringAt(stUidls,i),bdMime)
        ; ...

        ; Mark the email for deletion.
        success = CkMailMan::ckDeleteByUidl(mailman,CkStringTable::ckStringAt(stUidls,i))
        ; ...

        i = i + 1
    Wend

    ; emails marked for deletion will be deleted at this time
    success = CkMailMan::ckPop3EndSession(mailman)


    CkMailMan::ckDispose(mailman)
    CkStringArray::ckDispose(saUidls)
    CkStringTable::ckDispose(stUidls)
    CkBinData::ckDispose(bdMime)


    ProcedureReturn
EndProcedure