首页 > 解决方案 > Outlook Redemption DLL - 无法删除 PST 中的电子邮件

问题描述

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

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

Redemption DLL 表明电子邮件已成功删除。如果我尝试使用 Redemption DLL 再次阅读 PST,我会收到更少的电子邮件,这是有道理的。但是,我仍然可以在 Outlook 中看到已删除的电子邮件。尝试了关闭/重新打开 Outlook 和在 Outlook 中分离/重新附加 PST 等选项,但没有帮助。

Outlook 是否有可能将结果缓存在其他地方并导致这种差异?Outlook 版本为 2016。

任何帮助,将不胜感激!!

标签: outlookoutlook-redemptionpst

解决方案


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);
}

推荐阅读