【问题标题】:Downloaded attachments from Enterprise vault are 0kb in size with only '@' as their name从 Enterprise Vault 下载的附件大小为 0kb,名称仅为“@”
【发布时间】:2023-04-02 02:10:01
【问题描述】:
Sub Merge_daily_emails1()

    Dim myOlApp As New Outlook.Application
    Dim myNameSpace As Outlook.Namespace
    Dim myInbox As Outlook.MAPIFolder
    Dim Atch As Object
    Set myNameSpace = myOlApp.GetNamespace("MAPI")
    Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
    Dim filteredItems As Outlook.Items
    Dim itm As Object
    Dim strFilter As String

    strFilter = "@SQL=" & Chr(34) & "urn:schemas:httpmail:subject" & Chr(34) & " like '%Daily Reports%'"
    Set filteredItems = myInbox.Items.Restrict(strFilter)
    AttachmentPath = "H:\"
    If filteredItems.count > 0 Then
        For Each itm In filteredItems
            If itm.Attachments.count <> 0 Then
                For Each Atch In itm.Attachments
                    Atch.SaveAsFile AttachmentPath & Atch.Filename
                    Exit For
                Next
            Else
                MsgBox "Does not Have an Attachment"
            End If
        Next
    End If
    Set myOlApp = Nothing

End Sub

我正在尝试从我的收件箱电子邮件中下载所有在其主题行中包含“每日报告”字样的附件。

我下载的一些 Excel 文件大小为 0kb,名称为 "@"

我最好的猜测是,由于这些电子邮件很旧并且使用 enterprise vault 系统打开,我无法以正确的方式下载文件。

Edit (ddate as Date) 参数是我用于搜索的开始日期,我删除了代码以使其更简单,现在它将搜索整个收件箱。

【问题讨论】:

  • 代码运行了吗? (ddate As Date)
  • @Om3r 感谢您指出这一点,我已经编辑了代码并且它运行完美。

标签: vba outlook


【解决方案1】:

你可能想从你的 sub 中删除 (ddate As Date) 并将 AttachmentPath 声明为 Dim attachmentPath As String 也将 Option Explicit 设置为 Off 通常不是一个好习惯

请参阅 Option Explicit Statement 上的 MSDN

【讨论】:

  • 我可以从我的收件箱中的最近电子邮件中下载文件,只是那些旧的电子邮件,使用企业值是我将附件名称作为“@”的地方。
猜你喜欢
  • 1970-01-01
  • 2013-01-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多