Я получаю свои журналы заданий на электронную почту Outlook, где тема содержит большую часть необходимой информации, например, какое задание, какой день, какой сервер и статус. Я использовал Date в качестве параметра для получения электронного письма в Excel.
Я пытаюсь продолжить. Если задание не выполняется, создайте журнал либо в теле письма, либо в виде вложения к нему.
Для журнала в теле письма я перенес их на лист, проанализировал с поисковым запросом «Ошибка» и зафиксировал строка.
Для вложения я могу только сохранить его в папке и получить имя в Excel. Можно ли как-нибудь прочитать содержимое вложения, найти «Ошибка» и вывести только эту строку на лист Excel.
Option Explicit
Const AttachmentPath As String = "C:\users\maharaj\qalogs\"
Sub GetFromOutlook2()
Dim outlookAtch As Object
Dim NewFileName As String
NewFileName = AttachmentPath & Format(Date, "DD-MM-YYYY") & "-"
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Integer
Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set Folder = OutlookNamespace.GetDefaultFolder(olFolderInbox).Folders("QALOGS")
i = 1
For Each OutlookMail In Folder.Items
If OutlookMail.ReceivedTime "GREATER THAN or EQUAL TO" = Range("start_Date").Value Then
Range("email_Subject").Offset(i, 0).Value = OutlookMail.Subject
Range("email_Date").Offset(i, 0).Value = OutlookMail.ReceivedTime
Range("email_Sender").Offset(i, 0).Value = OutlookMail.SenderName
Range("email_Body").Offset(i, 0).Value = OutlookMail.Body
outlookAtch.SaveAsFile NewFileName & outlookAtch.Filename
Range("email_attachment").Offset(i, 0).Value = outlookAtch
End If
i = i + 1
Next OutlookMail
Set Folder = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing
End Sub