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