Как перебрать Outlook Inbox по дате? - Outlook OLE Automation - PullRequest
0 голосов
/ 21 июля 2010

Я бы хотел повторить входящие Outlook, и я с Ruby.

Я нашел некоторую полезную информацию здесь , но порядок сообщений в Inbox не упорядочен RecevedTime (Свойство для объекта OLE объекта). Метод GetLast может найти последнее сообщение, но метод GetPrevious не работает, как я ожидал.

require 'win32ole'

outlook = WIN32OLE.new('Outlook.Application')
mapi    = outlook.GetNameSpace('MAPI')
inbox   = mapi.GetDefaultFolder(6)

inbox.Items.GetLast # return the latest message, maybe
inbox.Items.GetPrevious # return nil object and then, what's this method for?
inbox.Items.Sort('ReceivedTime')    # is this right usage? if so, what's next?

Как перебирать сообщения в папке "Входящие" от самых последних до самых старых?

1 Ответ

0 голосов
/ 05 января 2011
require 'win32ole'

ol = WIN32OLE.new('Outlook.Application')
class OC; end
WIN32OLE.const_load(ol, OC)

mapi = ol.GetNameSpace("MAPI")
inbox = mapi.GetDefaultFolder(OC::OlFolderInbox)
items = inbox.items
items.sort('ReceivedTime', OC::OlAscending)

items.getfirst
items.getnext

items.getlast
items.getprevious
...