选择不同outlook帐户中的收件箱



如何选择我的二级outlook帐户的收件箱?下面的代码应该可以工作。但无论我选择帐户1还是2(通过更改outlookApp.Session.Accounts.Item(.)行中的索引(,它仍然会将Fldr设置为我的第一个帐户。我知道它这样做是因为消息框总是写着"搜索了4个项目",即使我的第二封电子邮件中有四个以上的项目。

Sub find_email2()
Dim outlookApp
Dim olNs As Outlook.Namespace
Dim oAccount As Account
Dim Fldr As Outlook.MAPIFolder
Dim olMail As Variant
Dim myTasks
Dim sir() As String
Dim attachmentFileName As String
Set outlookApp = CreateObject("Outlook.Application")
Set olNs = outlookApp.GetNamespace("MAPI")
Set oAccount = outlookApp.Session.Accounts.Item(2) ''' makes no difference if this is 1 or 2
Set Fldr = oAccount.Session.GetDefaultFolder(olFolderInbox)

Set myTasks = Fldr.Items
MsgBox "Searched " & myTasks.Count & " items"
End Sub

您会得到相同的文件夹,因为即使帐户不同,oAccount.Session也指向相同的Namespace对象。

您可以使用Namespace.Stores集合并调用Store.GetDefaultFolder(olFolderInbox)(准备好处理错误,因为并非所有存储都显示相同的默认文件夹,例如公用文件夹存储没有收件箱(,也可以使用Namespace.Accounts集合并对每个Account使用Account.DeliveryStore.GetDefaultFolder(olFolderInbox)

相关内容

最新更新