Проблема позднего связывания с методом outlook mailitem.save

У меня есть функция, которая воссоздает электронную почту, используя содержимое другой электронной почты (используя библиотеку Outlook Redemption). Я почти закончил преобразование его в раннее связывание (я использую Option Strict ON в vb.net), но Visual Studio 2010 подчеркивает строки.save и.move с ошибкой "опция strict on запрещает позднее связывание".

Код является:

'Use Redemption Library function to re-create email
    Dim sItem As Redemption.SafeMailItem
    Dim oItem As Object

    sItem = New Redemption.SafeMailItem
    oItem = myOlApp.Session.GetSharedDefaultFolder(myRecipient, Outlook.OlDefaultFolders.olFolderDrafts).Items.Add(Outlook.OlItemType.olMailItem)

    With sItem
        .Item = oItem
        .Import(tempfilepath, 3)  'olMSG, olRFC822 and olTNEF formats are supported
        .Save()
        .Move(myolfolder)
    End With

Решив другие ошибки позднего связывания, я не могу понять, почему два метода помечены как проблема.

Помоги Льюису

1 ответ

Решение

Вы получаете эту ошибку, потому что SafeMailItem реализует свойства и методы, заблокированные Outlook.
Поскольку Save и Move не заблокированы, SafeMailItem не реализует их, но он достаточно умен, чтобы передавать их при использовании позднего связывания. Вызовите эти методы, используя оригинальный элемент Outlook:

With sItem
        .Item = oItem
        .Import(tempfilepath, 3)  'olMSG, olRFC822 and olTNEF formats are supported
        oItem.Save()
        oItem.Move(myolfolder)
    End With
Другие вопросы по тегам