Outlook赎回DLL-无法删除PST中的电子邮件

时间:2019-03-14 22:54:09

标签: outlook outlook-redemption pst

我正在使用以下命令从PST中删除电子邮件。

foreach (Redemption.RDOMail oitem in filteredItems)
{
    try
    {
        oitem.Delete();
    }
    catch (Exception ex)
    {
        PSTLog.Log("Exception in DeleteEmails: " + ex.Message);
    }
}

兑换DLL表示电子邮件已成功删除。如果我尝试使用Redemption DLL再次读取PST,则会收到较少的电子邮件,这很有意义。但是,我仍然能够在Outlook中看到已删除的电子邮件。尝试了诸如在Outlook中关闭/重新打开Outlook以及分离/重新附加PST的选项,但没有帮助。

Outlook是否可能将结果缓存到其他位置并导致这种差异? Outlook版本是2016。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

如果要修改集合,请不要使用foreach循环。使用向下的“ for”循环:

foreach ( int i = filteredItems.Count; i > 0; i--)
{
    Redemption.RDOMail oitem = filteredItems[i];
    try
    {
        oitem.Delete();
    }
    catch (Exception ex)
    {
        PSTLog.Log("Exception in DeleteEmails: " + ex.Message);
    }
    Marshal.ReleaseComObject(oitem);
}