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

Transition from MailMan.TransferMultipleMime to MailMan.FetchMimeBd

Provides instructions for replacing deprecated TransferMultipleMime method calls with FetchMimeBd.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 0

set mailman [new_CkMailMan]

#  ...
#  ...

set saUidls [new_CkStringArray]

CkStringArray_Append $saUidls "aaa"
CkStringArray_Append $saUidls "bbb"
CkStringArray_Append $saUidls "ccc"

set stUidls [new_CkStringTable]

CkStringTable_Append $stUidls "aaa"
CkStringTable_Append $stUidls "bbb"
CkStringTable_Append $stUidls "ccc"

#  ------------------------------------------------------------------------
#  The TransferMultipleMime method is deprecated:

# sa is a CkStringArray
set sa [CkMailMan_TransferMultipleMime $mailman $saUidls]
if {[CkMailMan_get_LastMethodSuccess $mailman] == 0} then {
    puts [CkMailMan_lastErrorText $mailman]
    delete_CkMailMan $mailman
    delete_CkStringArray $saUidls
    delete_CkStringTable $stUidls
    exit
}

#  ...
#  ...

delete_CkStringArray $sa

#  ------------------------------------------------------------------------
#  Do the equivalent using FetchMimeBd.

CkMailMan_put_ImmediateDelete $mailman 0

set success 0
set bdMime [new_CkBinData]

set numUidls [CkStringTable_get_Count $stUidls]
set i 0
while {$i < $numUidls} {
    set success [CkMailMan_FetchMimeBd $mailman [CkStringTable_stringAt $stUidls $i] $bdMime]
    #  ...

    #  Mark the email for deletion.
    set success [CkMailMan_DeleteByUidl $mailman [CkStringTable_stringAt $stUidls $i]]
    #  ...

    set i [expr $i + 1]
}

#  emails marked for deletion will be deleted at this time
set success [CkMailMan_Pop3EndSession $mailman]

delete_CkMailMan $mailman
delete_CkStringArray $saUidls
delete_CkStringTable $stUidls
delete_CkBinData $bdMime