2 ответа

Лучший ответ

Вы можете использовать Namespace.OpenSharedItem, указав полное имя файла MSG, а затем скопировать (MailItem.Copy) или переместить его (MailItem.Move).

0
Dmitry Streblechenko 20 Май 2019 в 22:11

Как упоминал Дмитрий, я использовал Namespace.OpensharedItem, и это сработало.


Dim Filename As String
Filename = "C:\temp\DUMMY.msg"

Dim DestOlDirID As String
DesOlDirID = "(entry id value)"

Dim oApp
Set oApp = CreateObject("Outlook.Application")

'Get Namespace object
Dim oNamespace As Namespace
Set oNamespace = oApp.GetNamespace("MAPI")

'assign outlook folder by entry ID
Dim oFolder As Folder
Set oFolder = oApp.Session.GetFolderFromID(DesOlDirID)

Dim oItem As Object
Set oItem = oNamespace.OpenSharedItem(Filename)

'actually this move method did not delete original .msg local file. it works like copy.
oItem.Move oFolder

Set oItem = Nothing
Set oFolder = Nothing
Set oNamespace = Nothing
0
TaigaMaki 21 Май 2019 в 06:10