首页 > 解决方案 > 使用访问 vba 从 Outlook 提取电子邮件不能仅在一个文件夹上工作

问题描述

我需要从辅助 Outlook 帐户中提取电子邮件以进行访问,但它在我的所有文件夹上都可以正常工作,除了我需要提取的文件夹。我比较了两个辅助帐户文件夹的权限,它们是相同的!我已经检查了信任并取消了下载。

Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim colFolders As Outlook.Folders
Dim objFolder As Outlook.MAPIFolder
Dim objParentFolder As Outlook.MAPIFolder
Dim objMailItem As Outlook.MailItem
Dim strSQL As String
Dim strBody As String
Dim strSubject As String
Const strDoubleQuote As String = """"
Dim strFolderPath As String
Dim i As Byte
On Error GoTo Form_Load_Error

Set objApp = New Outlook.Application
Set objNS = objApp.GetNamespace("MAPI")

For i = 1 To objNS.Folders.Count
    Set objParentFolder = objNS.Folders(i)
    
    '';I use OutlookFolderNames to locate the folder in the user’s Outlook
    Set objFolder = OutlookFolderNames(objParentFolder, "Inbox")
    
    ' **Note that the objFolder shows that OutlookFolderNames found the "Inbox" as valid. I can change Inbox for any other folder and it works fine**
    If Not objFolder Is Nothing Then
        'Once the folder is located exit For
        Exit For
    End If
Next i

If Not objFolder Is Nothing Then
    For Each objMailItem In objFolder.Items
        With objMailItem

Set objFolder = Nothing
Set objNS = Nothing
Set objApp = Nothing
            
ExitProcedure:
     On Error GoTo 0
     Exit Sub
            
Form_Load_Error:
     MsgBox "Error " & Err.Number & " (" & Err.Description & ") in procedure Form_Load of VBA Document Form_frmImportEmails """

我想发布这个函数,但我收到一个错误,说代码太多了!

标签: vbaemailms-accessoutlook

解决方案


获取 objFolder 的功能是从另一个辅助文件夹 (objParentFolder) 获取收件箱,即使在实际 Outlook 屏幕中看不到任何收件箱。它必须是默认操作,每个操作都有一个收件箱。我需要做的就是检查 objParentFolder 是否 = 正确的辅助文件夹,然后检查与之关联的“收件箱”。当我打开并查看 Outlook 本身时,没有其他收件箱出现在辅助邮箱中,这让我感到震惊。它们是隐藏的。

谢谢你的时间皮特


推荐阅读