Outlook Interop Copy MailItem - PullRequest
       21

Outlook Interop Copy MailItem

2 голосов
/ 16 декабря 2010

Я знаю, что видел этот вопрос раньше, но не могу найти его снова.

Я хочу использовать Microsoft Interop для копирования почтового сообщения из папки «Входящие» в другую папку. Я знаю, что другие объекты, такие как встреча и папка, имеют метод CopyTo (), но он отсутствует для MailItem. Теперь я делаю это, вызывая MailItem.Copy и затем перемещая копию в другую папку. Мне это не нравится, потому что это вызывает некоторое «мерцание» на экране в outlook, где вы можете видеть, как Входящие увеличиваются и уменьшаются по мере того, как электронные письма копируются и перемещаются.

Есть ли другое решение?

Спасибо

Ответы [ 2 ]

3 голосов
/ 28 декабря 2010

Грустно, но это единственный способ ...

Посмотрите на http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/3dd2bd06-5738-4fb2-b628-0d7ab2be8157/

0 голосов
/ 11 февраля 2016

Вы можете сделать это, используя Extended MAPI ( IMAPIFolder :: CopyMessages - только C ++ или Delphi).

Если используется Погашение , это опция, она реализует RDOMail.CopyTo метод.Должно работать что-то вроде следующего:

  set Session = CreateObject("Redemption.RDOSession")
  Session.MAPIOBJECT = Application.Session.MAPIOBJECT

  set Item = Session.GetMessageFromID(Application.ActiveExplorer.Selection(1).EntryID)
  set Folder = Session.GetDefaultFolder(olFolderDeletedItems)

  Item.CopyTo(Folder)
...