Как получить правило Outlook для запуска сценария только для самой последней электронной почты? - PullRequest
0 голосов
/ 19 декабря 2018

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

Однако эти электронные письма представляют собой ежедневные отчеты с одинаковой темой.Всякий раз, когда я пытаюсь запустить это правило, он берет отчет за любой день с этой строкой темы и сохраняет это вложение, а не самый последний отчет.

Есть ли способ исправить это в outlook или даже в скрипте, который я использую?Я ценю всю ясность, которую я могу получить по этому вопросу!

Public Sub SaveAttachmentsToDisk4(MItem As Outlook.MailItem)
Dim oAttachment As Outlook.Attachment
Dim sSaveFolder As String
sSaveFolder = "K:\BI and Information\Farah\"
For Each oAttachment In MItem.Attachments
oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
Next
End Sub

1 Ответ

0 голосов
/ 19 декабря 2018

Вы можете получить в почтовом ящике непрочитанное вложение электронной почты и настроить непрочитанное письмо на чтение при сохранении вложения.

Пожалуйста, используйте следующий код:

Sub SaveAutoAttach(item As Outlook.MailItem)

Dim object_attachment As Outlook.attachment

Dim saveFolder As String
Dim oOutlook As Object
Dim oOlns As Object
Dim oOlInb As Object
Dim unRead, m As Object, att As Object
Dim some As String, other As String

Const olFolderInbox = 6

'~~> Get Outlook instance
Set oOutlook = GetObject(, "Outlook.application")
Set oOlns = oOutlook.GetNamespace("MAPI")
Set oOlInb = oOlns.GetDefaultFolder(olFolderInbox)

'~~> Check if there are any actual unread emails
Set unRead = oOlInb.Items.Restrict("[UnRead] = True")

If unRead.Count = 0 Then
    MsgBox "NO Unread Email In Inbox"
Else

    some = ""
    other = ""
    saveFolder = "D:\"
    For Each m In unRead
        If m.Attachments.Count > 0 Then
            For Each object_attachment In m.Attachments
            ' Criteria to save .doc files only
                If InStr(object_attachment.DisplayName, ".doc") Then
                    object_attachment.SaveAsFile saveFolder & "\" & object_attachment.DisplayName
                End If
             Next
        End If
        m.Delete
    Next m
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...