使用Outlook MAPI列出文件夹中的所有电子邮件

时间:2017-06-27 01:44:49

标签: vba email outlook

我想使用Outlook MAPI列出特定文件夹中的所有电子邮件。我试过以下代码,

但它只显示该文件夹中20,000封电子邮件中的400封。如果有人能告诉我如何列出所有的电子邮件,我将不胜感激。

Sub EmailListinFolder()

Dim mn As Long
Dim Message As String
Dim item As Object
Dim NS As Object
Dim Folder As Object

'Get the MAPI Name Space
Set NS = CreateObject("Outlook.Application").GetNamespace("MAPI")

'Allow the user to select a folder in Outlook
Set Folder = NS.PickFolder
For Each item In Folder.Items
  If item.Class = olMail Then

      Message = item.Subject & "|" & item.CreationTime
      If Len(Message) Then
        mn = mn + 1
      End If
  End If
Next item

MsgBox (mn)
End Sub

1 个答案:

答案 0 :(得分:0)

这是在线个人资料吗?最有可能的是你最终打开太多的项目(因为每个循环都会保留所有项目,直到循环退出)。请改用Table对象 - 请参阅https://msdn.microsoft.com/VBA/Outlook-VBA/articles/folder-gettable-method-outlook上的示例。