Необходимо найти конкретные сообщения в папке «Входящие», сохранить вложение, чтобы поделиться, а затем переместить электронную почту в другую папку VB.Net - PullRequest
0 голосов
/ 22 мая 2019

Я могу подключиться к учетной записи outlook, я могу найти свои сообщения, я могу сохранить вложение, чтобы поделиться им, просто не могу понять, как перейти в другую папку после сохранения вложения. После того, как все заработает, данные электронной почты для поиска и данные учетной записи будут переданы из таблицы SQL и обработаны через них.

Imports System.IO
Imports Microsoft.Office.Interop.Outlook
Imports Microsoft.Office.Interop
Imports System.Runtime.InteropServices
Imports Microsoft.SqlServer.Dts.Runtime
Imports System.Data.SqlClient
Imports System.Diagnostics.Tracing
Imports System.Net.Mail

Module Module1

Sub Main()
    Dim outlookApp As New Outlook.Application()

    Dim outlookSession As Outlook.NameSpace = outlookApp.Session
    outlookSession.Logon("UserID", "password", True, True)
    Console.WriteLine(outlookSession.CurrentUser)

Dim inboxFolder As Outlook.MAPIFolder = outlookSession.GetDefaultFolder (Outlook.OlDefaultFolders.olFolderInbox)
    Dim Subfolder As Outlook.MAPIFolder 'Tried it also just like the  inbox folder no difference
Subfolder = inboxFolder.Folders("Move to folder name")' Errors here operation failed, object could not be found


    Dim inboxItems As Outlook.Items = inboxFolder.Items
    For Each outlookItem As Object In inboxItems
        Dim mailItem As Outlook._MailItem = TryCast(outlookItem, Outlook._MailItem)
        If mailItem IsNot Nothing Then
            'Console.WriteLine(mailItem.Subject)
            If mailItem.SenderEmailAddress = "Reporting@successfactors.com" Then
                Dim attachments As Outlook.Attachments = mailItem.Attachments
                For Each attachment As Outlook.Attachment In attachments
                    'Just to test
                    Console.WriteLine("From " & mailItem.SenderEmailAddress)
                    Console.WriteLine("Subject " & mailItem.Subject)
                    Console.WriteLine("Attachment  " & attachment.FileName)
                    Console.WriteLine(inboxFolder.Items)
                    'Attachment does get saved
                    attachment.SaveAsFile("\\fileshare\folder\" & attachment.FileName)



                    Marshal.ReleaseComObject(attachment)
                Next attachment
                mailItem.Move(Subfolder) 'doesn't move
                'Subfolder = GetObject.Folders("DailyDataFeed1")
                'mailItem.Move(DestFldr:=Subfolder)
                Marshal.ReleaseComObject(attachments)
            End If




        End If

        Marshal.ReleaseComObject(outlookItem)
    Next outlookItem

    Marshal.ReleaseComObject(inboxItems)
    Marshal.ReleaseComObject(inboxFolder)
    Marshal.ReleaseComObject(outlookSession)
End Sub

Конечный модуль

Я ожидаю, что обработанные сообщения будут перемещены в подпапку

...