C
C
Transition from MailMan.TransferMultipleMime to MailMan.FetchMimeBd
Provides instructions for replacing deprecated TransferMultipleMime method calls with FetchMimeBd.Chilkat C Downloads
#include <C_CkMailMan.h>
#include <C_CkStringArray.h>
#include <C_CkStringTable.h>
#include <C_CkBinData.h>
void ChilkatSample(void)
{
BOOL success;
HCkMailMan mailman;
HCkStringArray saUidls;
HCkStringTable stUidls;
HCkStringArray sa;
HCkBinData bdMime;
int numUidls;
int i;
success = FALSE;
mailman = CkMailMan_Create();
// ...
// ...
saUidls = CkStringArray_Create();
CkStringArray_Append(saUidls,"aaa");
CkStringArray_Append(saUidls,"bbb");
CkStringArray_Append(saUidls,"ccc");
stUidls = CkStringTable_Create();
CkStringTable_Append(stUidls,"aaa");
CkStringTable_Append(stUidls,"bbb");
CkStringTable_Append(stUidls,"ccc");
// ------------------------------------------------------------------------
// The TransferMultipleMime method is deprecated:
sa = CkMailMan_TransferMultipleMime(mailman,saUidls);
if (CkMailMan_getLastMethodSuccess(mailman) == FALSE) {
printf("%s\n",CkMailMan_lastErrorText(mailman));
CkMailMan_Dispose(mailman);
CkStringArray_Dispose(saUidls);
CkStringTable_Dispose(stUidls);
return;
}
// ...
// ...
CkStringArray_Dispose(sa);
// ------------------------------------------------------------------------
// Do the equivalent using FetchMimeBd.
CkMailMan_putImmediateDelete(mailman,FALSE);
success = FALSE;
bdMime = CkBinData_Create();
numUidls = CkStringTable_getCount(stUidls);
i = 0;
while (i < numUidls) {
success = CkMailMan_FetchMimeBd(mailman,CkStringTable_stringAt(stUidls,i),bdMime);
// ...
// Mark the email for deletion.
success = CkMailMan_DeleteByUidl(mailman,CkStringTable_stringAt(stUidls,i));
// ...
i = i + 1;
}
// emails marked for deletion will be deleted at this time
success = CkMailMan_Pop3EndSession(mailman);
CkMailMan_Dispose(mailman);
CkStringArray_Dispose(saUidls);
CkStringTable_Dispose(stUidls);
CkBinData_Dispose(bdMime);
}