如何保存附件并重命名

How to save attachments and rename it

我在让我的代码正常工作时遇到问题。这是我第一次 运行 VBA 脚本。我有大量来自传真机的电子邮件,我希望能够下载附件,将文件重命名为主题行,然后将它们存储在我的计算机上。

我的第一次尝试是,我尝试只编写一个宏以便我可以手动执行它,但在做了一些研究之后,我的印象是我想让规则起作用。

这是我第一次尝试 VBA,所以我什至不确定我 运行 宏或规则脚本是否正确,但我感觉我只是在代码中遗漏了一些东西。有什么想法吗?

Public Sub saveAttachtoDiskRule(itm As Outlook.MailItem)

    Dim objAtt As Outlook.Attachment
    Dim saveFolder As String
    Dim fso As Object
    Dim oldName

    Dim file As String
    Dim DateFormat As String
    Dim newName As String

    Dim enviro As String
    enviro = CStr(Environ("USERPROFILE"))
    saveFolder = enviro & "\" & "\destinationfolder\"

    Set fso = CreateObject("Scripting.FileSystemObject")

     For Each objAtt In itm.Attachments
     file = saveFolder & objAtt.DisplayName
     objAtt.SaveAsFile file

     Set oldName = fso.GetFile(file)
     newName = itm.Subject
     oldName.Name = newName

     Set objAtt = Nothing
     Next

     Set fso = Nothing
End Sub

这是简单的规则脚本

Public Sub saveAttachtoDisk(olItem As Outlook.MailItem)
    Dim olAttachment As Outlook.Attachment
    Dim SaveFolder As String

    SaveFolder = "c:\temp\"

    For Each olAttachment In olItem.Attachments
        olAttachment.SaveAsFile SaveFolder & "\" & olAttachment.DisplayName
        Set olAttachment = Nothing
    Next
End Sub

Environ Function

Environ 函数可让您获取您的代码当前 运行 所在计算机的 Windows 环境变量,例如 user nametemporary folder

例子

用户的个人资料文件夹示例是

Environ("USERPROFILE") & "\Documents\Temp\"
result
Windows Vista/7/8:  C:\Users\Omar\
Windows XP:         C:\Documents and Settings\Omar\

"All Users" 或 "Common" 配置文件文件夹

Environ("ALLUSERSPROFILE")

临时文件夹示例为

Environ("TEMP") (or Environ("TMP") - is the same)
result: C:\Users\omar\AppData\Local\Temp