【问题标题】:Save new upcoming e-mail as file to selected folder将新的即将发送的电子邮件作为文件保存到选定的文件夹
【发布时间】:2022-01-18 04:14:54
【问题描述】:

我正在尝试在 VBA Outlook 中运行此 VBA 代码,我的主要目标是将任何新的即将发送的邮件作为文件保存到选定的文件夹中。但是,当我运行此脚本时,它什么也不做,它不保存任何新的即将发送的电子邮件。也许你可以看看这个,并帮助我?非常感谢。

Private Sub Application_Startup()
Set olItems = Session.GetDefaultFolder(olFolderInbox).Items
End Sub

Private Sub olItems_ItemAdd(ByVal Item As Object)
Dim NewMail As Outlook.MailItem
Dim Atts As Attachments
Dim Att As Attachment
Dim strPath As String
Dim strName As String

If Item.Class = olMail Then
  Set NewMail = Item
End If

Set Atts = Item.Attachments

If Atts.Count > 0 Then
  For Each Att In Atts
    If InStr(LCase(Att.FileName), “”) > 0 Then
      strPath = “selected path”
      strName = NewMail.Subject & ” ” & Chr(45) & ” ” & Att.FileName
      Att.SaveAsFile strPath & strName
    End If
  Next
End If
End Sub

【问题讨论】:

  • 检查我对另一个问题的回答,我在其中展示了如何设置监听器。这与您的工作流程有关。 stackoverflow.com/questions/51637693/…
  • olItems 声明在哪里?它必须是任何 Sub...之外的 Global...

标签: vba outlook


【解决方案1】:

确保主题不包含不能用于文件名的无效符号。还要确保传递一个代表文件路径的有效字符串。

Private WithEvents Items As Outlook.Items
Private Sub Application_Startup()
    Dim olNs As Outlook.NameSpace
    Dim Inbox  As Outlook.MAPIFolder

    Set olNs = Application.GetNamespace("MAPI")
    Set Inbox = olNs.GetDefaultFolder(olFolderInbox)
    Set Items = Inbox.Items
End Sub

Private Sub Items_ItemAdd(ByVal Item As Object)
   Dim Atts As Attachments
   Dim Att As Attachment
   Dim strPath As String
   Dim strName As String
   
   If TypeOf Item Is Outlook.MailItem Then
        Set Atts = Item.Attachments

     If Atts.Count > 0 Then
       For Each Att In Atts
         If InStr(LCase(Att.FileName), “”) > 0 Then
           strPath = “selected path”
           strName = NewMail.Subject & ” ” & Chr(45) & ” ” & Att.FileName
           Att.SaveAsFile strPath & strName
         End If
       Next
     End If
   End If
End Sub

注意,您还可以考虑处理Application.NewMailEx 事件,该事件在新邮件到达收件箱时以及在客户端规则处理发生之前触发。您可以使用EntryIDCollection 数组中返回的Entry ID 来调用NameSpace.GetItemFromID 方法并处理该项目。该项目可以是几种不同的项目类型之一,例如,MailItemMeetingItemSharingItem

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-03-18
    • 2023-03-16
    • 2022-08-23
    • 2016-03-11
    • 1970-01-01
    • 2018-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多