好吧,我遇到了一个问题。
我正在使用 MS Outlook API 使用 C# 从收到的电子邮件中生成一些基于 excel 的报告。
现在最初当我开始这个时,没关系,因为文件夹中的电子邮件数量少了一点。现在几天后,这个数字已经达到了数千。
Application app = null;
_NameSpace ns = null;
MailItem item = null;
MAPIFolder inboxFolder = null;
MAPIFolder subFolder = null;
DateTime MyDateTime;
MyDateTime = new DateTime();
MyDateTime = DateTime.ParseExact(dateFilter, "yyyy-MM-dd HH:mm tt", null);
try
{
app = new Application();
ns = app.GetNamespace("MAPI");
ns.Logon(null, null, false, false);
inboxFolder = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
subFolder = inboxFolder.Folders["Alerts"];
for (int i = 1; i <= subFolder.Items.Count; i++)
{
item = (Microsoft.Office.Interop.Outlook.MailItem)subFolder.Items[i];
string subject = item.Subject;
DateTime sent = item.SentOn;
if (item.SentOn > MyDateTime && item.SentOn < MyDateTime.AddDays(1))
{//Do some logging
}}
现在上面代码的问题是它从收到的最后一封电子邮件开始搜索。这导致它增加了到达“过滤器”所需的时间。
我需要改进我的代码的建议(如果有的话)。
谢谢你把我读出来。