我有一段脚本,从一个Outlook收件箱抓住100名最近接收到的电子邮件。在没有使用缓存Exchange模式的Outlook配置文件中,它可以正常工作,为我们提供了最近的100封电子邮件。但是,如果Outlook配置文件启用了缓存Exchange模式,两年前我从一个看似随机的时间点开始收到100封电子邮件。我如何使用VBScript从使用缓存Exchange模式配置文件100个最近的Outlook电子邮件?
Dim olApp As Outlook.Application, olNs As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder
Dim olMail As Outlook.MailItem
Dim i As Long
Set olApp = New Outlook.Application
Set olNs = olApp.GetNamespace("MAPI")
Set olFolder = olNs.GetDefaultFolder(olFolderInbox)
Set myItems = olFolder.Items
myItems.Sort "[ReceivedTime]", True
For i = 1 To 100
If TypeOf myItems(i) Is MailItem Then
Set olMail = myItems(i)
...
' do something with each email
...
End If
Next i
有没有更好的办法做到这一点,将获得100个最近的电子邮件缓存Exchange模式是否启用或不?
谢谢您的回答,但请原谅我,我有点困惑。也许我没有解释得很好。他们的邮箱显示三四年的电子邮件。而我想访问的总是100个最近的电子邮件。但是该脚本从2015年开始随机返回100封电子邮件。我认为这与存储在PST文件中的内容和OST文件有关。就像Outlook只能回复PST文件中的内容。 –
好的,我明白了。我无法解释你所看到的行为; AFAIK它应该返回最新的可用项目时按日期降序排序。顺便说一句,pst文件和一个ost之间没有关系;后者从不用于Exchange帐户(除非它是传递文件夹,这是不寻常的)。 –