Outlook задача обработки писем - VB

Узнай цену своей работы

Формулировка задачи:

Привет всем! Есть такая цель, опишу ниже подробнее На почту приходят алармы в определенный ящик мейлбокса, Шапка письма backserver: backserv: Backup group aborted: SHS-EIT-daily (already running) Текст: NetWorker savegroup: (alert) Group SHS-EIT-daily aborted, savegrp is already running Надо каким-то образом вытащить из письма информацию и загнать в эксель, таким образом вытащить имя упавшей бекап группы, в нашем случае SHS-EIT-daily создать новое письмо, указав кому, и в текст вставить имя этой группы. Пока я не знаю как забирать инфо из Оутлука вообще.

Решение задачи: «Outlook задача обработки писем»

textual
Листинг программы
Function CorrectFaleName(ByVal FName As String) As String
arrA = Array(34, 42, 47, 58, 60, 62, 63, 92, 124)
arrB = Array(39, 149, 178, 59, 171, 187, 33, 178, 178)
tmpString = FName
For i = 1 To 31
tmpString = Replace(tmpString, Chr(i), "") 'удаляю непечат. символы
Next i
 
For i = 0 To 8
tmpString = Replace(tmpString, Chr(arrA(i)), Chr(arrB(i))) 'удаляю остальные символы
Next i
 
CorrectFaleName = tmpString
End Function
 
Function DateFormat(ByVal Dt As Date) As String
Dim D
Dim T
D = Year(Dt) & "-" & Format(Month(Dt), "00") & "-" & Format(Day(Dt), "00")
T = Format(Hour(Dt), "00") & "." & Format(Minute(Dt), "00") & "." & Format(Second(Dt), "00")
DateFormat = D & " " & T
End Function
 
Sub test()
Set InboxFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderDeletedItems)
'Set InboxFolder = Application.GetNamespace("MAPI").GetDefaultFolder(olFolderInbox)
 
If InboxFolder.Items.Count = 0 Then Exit Sub
For i = 1 To InboxFolder.Items.Count
    Set CurrItem = InboxFolder.Items(i)
    
    iName = CurrItem.SenderName
    iFormat = CurrItem.BodyFormat
    iTime = CurrItem.ReceivedTime 'принято на сервер
    iTopic = CurrItem.ConversationTopic
    'iTime1 = CurrItem.CreationTime 'принято на комп
    'iSize = CurrItem.Size \ 1024 & " Кб"
    
    CurrItem.BodyFormat = olFormatHTML
    
    newDir = "C:\_123\" & iName
    If Dir(newDir, vbDirectory) = "" Then MkDir newDir
    
    'CurrItem.SaveAs "C:\_123\" & DateFormat(iTime) & " - " & iTopic & ".htm", olHTML
    'CurrItem.SaveAs "C:\_123\" & DateFormat(iTime) & ".htm", olHTML
    'CurrItem.SaveAs "C:\_123\" & iName & "\" & DateFormat(iTime) & ".htm", olHTML
    CurrItem.SaveAs newDir & "\" & DateFormat(iTime) & " - " & CorrectFaleName(iTopic) & ".htm", olHTML
    'CurrItem.SaveAs newDir & "\" & DateFormat(iTime) & ".htm", olHTML
Next
'msgbox "OK!"
End Sub

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.385 из 5