Outlook附加规则,然后运行脚本并将附件保存到文件夹

时间:2019-03-19 06:47:00

标签: vba outlook-vba

我在规则中使用此脚本

Public Sub saveAttachtoDisk(itm As Outlook.MailItem)
    Dim objAtt As Outlook.Attachment
    Dim saveFolder As String
    saveFolder = "c:\temp\"

    MkDir itm.Parent, saveFolder ' here creating folder if not exist

    For Each objAtt In itm.Attachments
        objAtt.SaveAsFile saveFolder & "\" & itm.Parent & "\" & objAtt.DisplayName
        Set objAtt = Nothing
    Next

End Sub

enter image description here

但是问题是所有保存到INBOX的附件都称为文件夹,但没有保存在邮件已移动的文件夹中。

那么如何获取规则将电子邮件移动到的文件夹名称?

所以现在要保存在c:\temp\Inbox中,但是必须保存在c:\temp\Unfiled中,或者如果移动的文件夹是子文件夹,那么必须保存在c:\temp\Folder\Unfiled

1 个答案:

答案 0 :(得分:2)

我相信您的问题是您正在要求规则移动MailItem和脚本以保存附件。根据您的描述,我推断出Outlook在规则移动MailItem之前先运行脚本。这不是规则向导所说的,但是症状与规则向导所说的不符。

光盘文件夹地址为saveFolder & "\" & itm.Parent & "\" & objAtt.DisplayName。在移动邮件项之前,itm.Parent是“收件箱”。只有在搬家之后itm.Parent才会被“取消提起”。

您的选择包括:

  1. 使用脚本保存附件并移动电子邮件,以便您控制顺序。
  2. 将附件保存到saveFolder & "\Unfiled\" & objAtt.DisplayName