无法将类型为"Microsoft.Exchange.WebServices.Data.EmailMessage"的对象转换为类型"Microsoft.Office.Interop.Outlook.Ma



我的目的是将昨天的邮件项目复制到我的计算机中的外部文件夹,我在"mailitem = Item"中遇到此错误。

以下是我的代码:

    Dim service As New ExchangeService(ExchangeVersion.Exchange2010_SP2)
    service.Credentials = New WebCredentials("user", "Password", "domain")
    service.AutodiscoverUrl("acce@pac.com.in")
    Dim pageSize As Integer = 100
    Dim offset As Integer = 0
    Dim view As New ItemView(pageSize, offset)
    Dim returnValue As FindItemsResults(Of Item)
    returnValue = service.FindItems(WellKnownFolderName.Inbox, view)
    Dim subject As String
    Dim receiveDate As Date
    Dim maxDate As Date = getLatestDate()
    For Each Item In returnValue
        receiveDate = Item.DateTimeReceived
        If receiveDate > maxDate Then
            Dim strDirPLE As String
            Dim strDirCust As String
            Dim strSaveName As String
            strDirPLE = "D:test1"
            strDirCust = "D:test2"
            Dim mailitem As Microsoft.Office.Interop.Outlook.MailItem
            mailitem = Item
            subject = Item.Subject.Replace(":", "")
            subject = Item.Subject.Replace(".", "")
            strSaveName = subject & Format(Now, " ddmmyyyyhhnnss") & ".msg"
             If (mailitem.From.Contains("@pac.com.in")) Then
                If (Item.Subject.Contains("CId") AndAlso Item.Subject.Contains("pId")) Then
                    mailitem.SaveAs(strcon1)
                Else
                    mailitem.SaveAs(strcon2)
                End If
            End If
        End If
        Exit For
    Next
End Sub

错误

无法施放类型的对象'Microsoft.exchange.webservices.data.emailmessage'键入'Microsoft.office.interop.outlook.outlook.mailitem'

我建议将其保存为EML而不是MSG。对不起,vb.net不是我的母语。

Shared Sub ExportMIMEEmail(service As ExchangeService)
    Dim inbox As Folder = Folder.Bind(service, WellKnownFolderName.Inbox)
    Dim view As New ItemView(1)
    view.PropertySet = New PropertySet(BasePropertySet.IdOnly)
    ' This results in a FindItem call to EWS.
    Dim results As FindItemsResults(Of Item) = inbox.FindItems(view)
    For Each item As var In results
        Dim props As New PropertySet(EmailMessageSchema.MimeContent)
        ' This results in a GetItem call to EWS.
        Dim email = EmailMessage.Bind(service, item.Id, props)
        Dim emlFileName As String = "C:exportemail.eml"
        ' Save as .eml.
        Using fs As New FileStream(emlFileName, FileMode.Create, FileAccess.Write)
            fs.Write(email.MimeContent.Content, 0, email.MimeContent.Content.Length)
        End Using
    Next
End Sub

这是根据https://msdn.microsoft.com/en-us/library/office/dn672317(v = exchg.150)9.aspx?f=255&mmspperr = 2147217396

相关内容

最新更新