Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Microsoft.Office.Interop.Outlook.Items.Restrict-工作不正常_C#_Mapi - Fatal编程技术网

C# Microsoft.Office.Interop.Outlook.Items.Restrict-工作不正常

C# Microsoft.Office.Interop.Outlook.Items.Restrict-工作不正常,c#,mapi,C#,Mapi,我可以拉邮件,浏览,标记为已读,甚至排序。然而,当我试图通过ReceivedTime进行限制时,它似乎不起作用。无论我在什么日期/时间投进去,我都得不到任何回报。我知道ReceivedTime根据移除限制时的排序工作有效。有什么建议吗 Application app = new Application(); NameSpace outlookNs = app.GetNamespace("MAPI"); Microsoft.Office.Interop.Outlook.Folders folde

我可以拉邮件,浏览,标记为已读,甚至排序。然而,当我试图通过ReceivedTime进行限制时,它似乎不起作用。无论我在什么日期/时间投进去,我都得不到任何回报。我知道ReceivedTime根据移除限制时的排序工作有效。有什么建议吗

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

确保当前区域设置日期格式确实是MM/dd/yyyy,而不是dd/MM/yyyy。

发现问题。只花了三天时间,因为似乎没有提到这些日期/时间的格式。似乎它不喜欢秒或上午/下午在那里。使用军用时间并去掉秒数可以让它正常工作

items = items.Restrict("[ReceivedTime] > '" + dt.ToString("MM/dd/yyyy HH:mm") + "'");

检查过了,不是问题。使用这条线路,对我来说不起作用。我希望他们能更好地记录这一点,简单地查找日期格式是一件非常痛苦的事情。