Ошибка перемещения 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, но не поддерживают перемещение между папками - возможно, это виртуальные почтовые элементы. Смотрите обсуждения в другом месте по обработке недоставленных сообщений

Другие вопросы по тегам