在 Outlook 中创建规则以将电子邮件复制到远程文件夹?

在 Outlook 中创建规则以将电子邮件复制到远程文件夹?

我们已经Outlook 2013在我们的电脑上安装了Windows 7

在我的收件箱中,我每天都会收到一封电子邮件,其主题包含文本“今天的 Excel 销售额”,并包含一个 Excel 附件。

我可以创建一个每天运行的规则,接收该电子邮件并将附加的 Excel 文件保存到远程计算机的文件夹中吗?就我而言,它将被复制到\\RemoteServer\c$\Temp,但如果有必要,我也可以映射它。

答案1

是的,但不要使用 Outlook 规则。有很多使用 VBA 宏执行此操作的示例。在“ThisOutlookSession”对象中,您可以创建事件触发器来处理收到的邮件,就像 Outlook 规则一样。

我上次在 StackOverflow 上回答这个问题是在这里: https://stackoverflow.com/questions/51637693/outlook-2016-select-script-window-in-rules-wizard-is-blank/51638058#51638058

答案如下:将此代码放入“ThisOutlookSession”对象中。它仅从那里开始起作用。

Option Explicit
Private WithEvents inboxItems As Outlook.Items

' Set up the listener on the Inbox
Private Sub Application_Startup()
    Dim outlookApp As Outlook.Application
    Dim objectNS As Outlook.NameSpace

    Set outlookApp = Outlook.Application
    Set objectNS = outlookApp.GetNamespace("MAPI")
    Set inboxItems = objectNS.GetDefaultFolder(olFolderInbox).Items
End Sub

' Send new mail to the attachment processor
Private Sub inboxItems_ItemAdd(ByVal Item As Object)
    If TypeName(Item) = "MailItem" Then
        Dim EMail As Outlook.MailItem
        Set EMail = Item
        Debug.Print "Incoming Data."
        SaveAttachmentsToDisk EMail
        Set EMail = Nothing
    End If
End Sub

Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)  
    Dim oAttachment As Outlook.Attachment
    Dim sSaveFolder As String
    sSaveFolder = "\\RemoteServer\c$\Temp\"

    For Each oAttachment In MItem.Attachments
        oAttachment.SaveAsFile sSaveFolder & oAttachment.FileName
    Next
End Sub

相关内容