Как перебрать Outlook Inbox по дате? - Outlook OLE Automation
Я хотел бы повторить Outlook Inbox, и я с Руби.
Я нашел некоторую полезную информацию здесь, но порядок сообщений в папке "Входящие" не упорядочен RecevedTime(свойство для объекта Item 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 ответ
Решение
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