Sample code for 30+ languages & platforms
PureBasic Requires Chilkat v11.0.0+

Transition from Imap.FetchBundleAsMime to Imap.FetchSingleBd

Provides instructions for replacing deprecated FetchBundleAsMime method calls with FetchSingleBd.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkBinData.pb"
IncludeFile "CkImap.pb"
IncludeFile "CkMessageSet.pb"
IncludeFile "CkStringArray.pb"

Procedure ChilkatExample()

    success.i = 0

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

    ;  ...
    ;  ...

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

    success = CkImap::ckQueryMbx(imap,"FROM joe@example.com",1,mset)
    ;  ...
    ;  ...

    ;  ------------------------------------------------------------------------
    ;  The FetchBundleAsMime method is deprecated:

    saObj.i = CkImap::ckFetchBundleAsMime(imap,mset)
    If CkImap::ckLastMethodSuccess(imap) = 0
        Debug CkImap::ckLastErrorText(imap)
        CkImap::ckDispose(imap)
        CkMessageSet::ckDispose(mset)
        ProcedureReturn
    EndIf

    ;  ...
    ;  ...

    CkStringArray::ckDispose(saObj)

    ;  ------------------------------------------------------------------------
    ;  Do the equivalent using FetchSingleBd.

    CkImap::setCkAutoDownloadAttachments(imap, 1)

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

    bUid.i = CkMessageSet::ckHasUids(mset)
    numEmails.i = CkMessageSet::ckCount(mset)
    i.i = 0
    While i < numEmails
        success = CkImap::ckFetchSingleBd(imap,CkMessageSet::ckGetId(mset,i),bUid,bdMime)
        ;  ...
        ;  ...

        i = i + 1
    Wend


    CkImap::ckDispose(imap)
    CkMessageSet::ckDispose(mset)
    CkBinData::ckDispose(bdMime)


    ProcedureReturn
EndProcedure