Potrafię pobierać wiadomości e-mail, przechodzić przez nie, oznaczać je jako przeczytane, a nawet sortować. Jednak gdy próbowałem ograniczyć przez ReceivedTime, wydaje się, że nie działa. Nie otrzymuję nic z powrotem bez względu na datę/godzinę, którą wstawiłem. Wiem, że ReceivedTime jest ważne na podstawie sortowania działa po usunięciu ograniczenia. Jakieś sugestie?Microsoft.Office.Interop.Outlook.Items.Restrict - nie działa poprawnie
Application app = new Application();
NameSpace outlookNs = app.GetNamespace("MAPI");
Microsoft.Office.Interop.Outlook.Folders folders = outlookNs.Folders[ohOptions.PSTName].Folders
Microsoft.Office.Interop.Outlook.Items items = folders["Inbox"].Items;
DateTime dt = DateTime.Now.Subtract(new TimeSpan(1,0,0));
items = items.Restrict("[ReceivedTime] > '" + dt.ToString("MM/dd/yyyy hh:mm:ss tt") + "'");
items.Sort("[ReceivedTime]", OlSortOrder.olAscending);
foreach (MailItem item in items)
{
String from = item.SenderEmailAddress;
}
Używanie tej dokładnej linii i to nie działa dla mnie. Szkoda, że nie udokumentują tego lepiej, po prostu znalezienie formatu daty to taki ból. – Joe
Ten artykuł po prostu używa DateTime.ToString ("g"), który również działa dla mnie. https://msdn.microsoft.com/en-us/library/office/gg619398.aspx –