代码之家  ›  专栏  ›  技术社区  ›  User1493 Alan Mroczek

将outlook邮件自动保存到指定文件夹[已关闭]

  •  -3
  • User1493 Alan Mroczek  · 技术社区  · 6 年前

    我想在每次收到来自特定ID的电子邮件时自动保存电子邮件(例如-'xyz@abc.com“)放入指定的文件夹中。 然后,我可以使用此文件作为脚本的触发器。

    这能做到吗?这需要VBA还是outlook?

    如果邮件可以保存为文本文件,那就太好了。

    2 回复  |  直到 4 年前
        1
  •  2
  •   gnat Nat Poor    6 年前

    将Outlook中的宏安全设置为低: 转到“文件”、“选项”、“信任中心”和“打开信任中心设置”,然后更改宏设置。在Outlook 2007及更早版本中,它的at工具是宏安全性。

    打开VBA编辑器:

    要将代码放入模块中,请执行以下操作:

    1. 右键单击项目1并选择“插入”>单元
    2. 将下面的宏复制并粘贴到新模块中。

          Public Sub SaveMsg(Item As Outlook.MailItem)
      Dim sPath As String
      Dim dtDate As Date
      Dim sName As String
      Dim enviro As String 
      enviro = CStr(Environ("USERPROFILE"))
      sName = Item.Subject
      ReplaceCharsForFileName sName, "_" 
      dtDate = Item.ReceivedTime
      sName = Format(dtDate, "yyyymmdd", vbUseSystemDayOfWeek, _
      vbUseSystem) & Format(dtDate, "-hhnnss", _
      vbUseSystemDayOfWeek, vbUseSystem) & "-" & sName & ".msg"
      ' use My Documents in older Windows.     
      sPath = enviro & "\Documents\"
      Debug.Print sPath & sName
      Item.SaveAs sPath & sName, olMsg
      End Sub
      Private Sub ReplaceCharsForFileName(sName As String, _
      sChr As String _
      )
      sName = Replace(sName, "/", sChr)
      sName = Replace(sName, "\", sChr)
      sName = Replace(sName, ":", sChr)
      sName = Replace(sName, "?", sChr)
      sName = Replace(sName, Chr(34), sChr)
      sName = Replace(sName, "<", sChr)
      sName = Replace(sName, ">", sChr)
      sName = Replace(sName, "|", sChr)
      End Sub
      

    这个网站给了我一个完美的答案:

    https://www.slipstick.com/outlook/archive-outlook/save-incoming-messages-hard-drive/

    只需复制粘贴他们的代码并更改基本参数。 像枪一样工作。

        2
  •  -2
  •   ASH    6 年前

    您可以使用简单的脚本和规则将附件自动保存到文件夹。

    Public Sub SaveAttachmentsToDisk(MItem As Outlook.MailItem)
    Dim oAttachment As Outlook.Attachment
    Dim sSaveFolder As String
       sSaveFolder = "C:\Users\DT168\Documents\outlook-attachments\"
       For Each oAttachment In MItem.Attachments
          oAttachment.SaveAsFile sSaveFolder & oAttachment.DisplayName
       Next
    End Sub
    

    https://www.extendoffice.com/documents/outlook/3747-outlook-auto-download-save-attachments-to-folder.html