Ошибка перемещения Mailitem при перемещении сообщения в другую папку в Outlook с использованием VB.net
Ошибка перемещения Mailitem при перемещении сообщения в другую папку в Outlook с использованием VB.net
Я продолжаю сталкиваться с ошибкой в Outlook при попытке переместить MailItems с помощью Outlook Com Interop в VB.net. У меня нет проблем с доступом к сообщениям, их чтением или получением связанных папок, просто я получаю эту ошибку при попытке переместить сообщения с перерывами.
Вот сообщение об ошибке, о котором сообщает приложение:
`System.Runtime.InteropServices.COMException(0x80040107): The operation failed. at Microsoft.Office.Interop.Outlook_Mailitem.Move(MAPIFolderDestFldr) at ApplicationName.MainWindow.EmailImport() at System.Threading....`
Ну, вы поняли.
Вот соответствующий код:
Dim OutlookAp As New Outlook.Application
Dim NS As Outlook.Namespace = OutlookAp.GetNamespace("MAPI")
Dim ObjFolder As Outlook.Folder
Dim Inbox As Outlook.Folder
Dim CEBFolder As Outlook.Folder
Dim DestinationFolder As Outlook.Folder
Dim Mesg As Outlook.Mailitem
Вот как я получаю папки:
For Each ObjFolder in NS.Folders
If ObjFolder.Name = "CEB Folder Name" Then
CEBFolder = ObjFolder
Exit For
End If
Next ObjFolder
РЕДАКТИРОВАТЬ: Включая остальные папки:
For Each ObjFolder in CEBFolder.Folders
If ObjFolder.Name = "Inbox" then
Inbox = ObjFolder
Exit For
End If
Next ObjFolder
For Each ObjFolder in Inbox.Folders
If ObjFolder.Name = "Destination Folder" then
DestinationFolder = ObjFolder
Exit For
End If
Next ObjFolder
И так далее. Вот как я перемещаю сообщение:
For Counter = Inbox.Items.Count to 1 Step -1
If TypeName(Inbox.Items(Counter)) = "MailItem" then
Mesg = Ctype(Inbox.Items(Counter), Outlook.MailItem)
'Do some parsing of the message
Mesg.Move(DestinationFolder)
End If
Next Counter
И это в значительной степени так. Этот код кажется успешным в большинстве случаев, но время от времени Outlook просто не позволяет мне переместить сообщение, полная остановка.
Как всегда, любые идеи очень ценятся.
1 ответ
Похоже, вы никогда не назначаете DestinationFolder
вы пытаетесь переместить сообщение в Null
,
Похоже, вы не можете перемещать MailItems, которые являются ответами системы на недоставленную электронную почту и т. Д. Они отображаются как тип MailItem, но не поддерживают перемещение между папками - возможно, это виртуальные почтовые элементы. Смотрите обсуждения в другом месте по обработке недоставленных сообщений