在我删除超过 15 天的邮件项的几个公用文件夹中,大约有 15 个特定的公用文件夹。每个公用文件夹都有大约 1000 多个邮件项。每周都是相同数量的物品。目前我正在获取默认的公用文件夹并循环每个子文件夹并删除邮件。
Microsoft.Office.Interop.Outlook.Folder tempInbox = tempApp.Session.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olPublicFoldersAllPublicFolders) as Microsoft.Office.Interop.Outlook.Folder;
**SOME Code***
foreach (Microsoft.Office.Interop.Outlook.Folder subfolder1 in subfolder.Folders)
{
if ((check those 14 subfolder names )& (subfolder1.Folders.Count > 0))
{
CheckCountries(subfolder1, sw);
}
}
CheckCountries(subfolder1, sw) -> Here I am comparing and deleting the mail items.
//Deletion part of code below
foreach (object todel in delItem)
{
DateTime d1 = DateTime.Now;
Microsoft.Office.Interop.Outlook.MailItem mailitmType = todel as Microsoft.Office.Interop.Outlook.MailItem;
if (mailitmType is Microsoft.Office.Interop.Outlook.MailItem)
{
if ((mailitmType.IsConflict != true) & (mailitmType.MessageClass.Contains("IPM.Note.SMIME") == false))
{
DateTime d2 = mailitmType.ReceivedTime;
if ((d1 - d2).TotalDays > iDays)
{
sw.WriteLine("Deleting Mail with Subject line as = \"" + mailitmType.Subject + "\" and Received time = " + mailitmType.ReceivedTime);
mailitmType.Delete();
iCnt = iCnt + 1;
} //mailitmType.Save();
}
}
}
我想在以下方面进行改进 -
- 执行此操作需要将近 5-7 个小时,因为它会读取 15 个文件夹中的每个文件夹中的所有邮件项(如果有 2000 个,其中只有 1000 个大于 15 天),并比较邮件的年龄,然后删除。
- 由于访问问题,某些文件夹失败。所以我需要在代码的开头添加一个 id,它可以访问所有这些公共文件夹并且可以用来删除。目前,它采用运行可执行文件的默认 ID。