Простое требование -> Подсчитайте количество писем, полученных за последние семь дней. Код кажется достаточно простым:Количество просмотров последней почты в Интернете
void CountEmail()
{
Outlook.Explorer currExplorer = null;
Outlook.Folder folder = null;
Outlook.Items items = null;
Outlook.ContactItem contact = null;
string contactList = string.Empty;
try
{
currExplorer = Application.ActiveExplorer();
folder = (Outlook.Folder)currExplorer.CurrentFolder;
items = folder.Items;
int count = items.Count; // 10082 count
IEnumerable<Outlook.MailItem> mail = folder.Items.OfType<Outlook.MailItem>().Where(m => m.ReceivedTime <= DateTime.Now - new TimeSpan(7, 0, 0, 0)).Select(m => m);
int itemscount = mail.Count<Outlook.MailItem>(); // out of memory here
.....
запрос в почте = ... явно ленивый нагрузки, так как это время не тратится на работу. Последующий вызов - это выполнение, и я заканчиваю или память. Мне не нужен фактический контент, просто счет.
Итак, как получить счет электронных писем, полученных в течение последних семи дней?
Я знаю о .Restrict, но документации Msft действительно не хватает здесь. Я нашел еще одну должность SO, которая помогла, если у других тоже будет эта проблема; http://stackoverflow.com/questions/17169646/microsoft-office-interop-outlook-items-restrict-not-working-correctly – JamieMeyer