繁体   English   中英

如何在第二个收件箱(共享帐户)上运行代码?

[英]How to run code on second inbox (shared account)?

我将 email 移动到收件箱的特定子文件夹中,只要它被标记为“发票”标签。

Private WithEvents objInboxFolder As Outlook.Folder
Private WithEvents objInboxItems As Outlook.Items

'Process inbox mails
Private Sub Application_Startup()
    Set objInboxFolder = Outlook.Application.Session.GetDefaultFolder(olFolderInbox)
    Set objInboxItems = objInboxFolder.Items
End Sub

'Occurs when changing item
Private Sub objInboxItems_ItemChange(ByVal Item As Object)
    Dim objMail As Outlook.MailItem
    Dim objTargetFolder As Outlook.Folder
 
    If TypeOf Item Is MailItem Then
       Set objMail = Item
 
       'Move mails based on color category
       If InStr(objMail.Categories, "Invoice") > 0 Then
          Set objTargetFolder = Application.Session.GetDefaultFolder(olFolderInbox).Folders("Invoices").Folders("Uploaded")
          objMail.Move objTargetFolder
       End If
    End If
End Sub

我在 Outlook 中有两个邮箱/帐户。 我的个人 email 地址以及 Accounting@company.com(多人使用)。

如何处理会计收件箱?

您可以使用Store.GetDefaultFolder方法,该方法返回一个Folder object,它表示存储中的默认文件夹,并且是FolderType参数指定的类型。 此方法类似于NameSpace object 的GetDefaultFolder方法。 不同之处在于此方法获取与帐户关联的交付存储上的默认文件夹,而 NameSpace.GetDefaultFolder 返回当前配置文件的默认存储上的默认文件夹。

因此,您可以枚举 Outlook 配置文件中的商店并找到所需的商店。 例如,以下代码展示了如何递归地遍历 Outlook 中的所有商店和文件夹:

Sub EnumerateFoldersInStores() 
 Dim colStores As Outlook.Stores
 Dim oStore As Outlook.Store 
 Dim oRoot As Outlook.Folder 
 On Error Resume Next 
 Set colStores = Application.Session.Stores 
 For Each oStore In colStores 
   Set oRoot = oStore.GetRootFolder 
   Debug.Print (oRoot.FolderPath) 
   EnumerateFolders oRoot 
 Next 
End Sub 
 
Private Sub EnumerateFolders(ByVal oFolder As Outlook.Folder) 
 Dim folders As Outlook.folders 
 Dim Folder As Outlook.Folder 
 Dim foldercount As Integer 
 On Error Resume Next 
 Set folders = oFolder.folders 
 foldercount = folders.Count 
 'Check if there are any folders below oFolder 
 If foldercount Then 
   For Each Folder In folders 
     Debug.Print (Folder.FolderPath) 
     EnumerateFolders Folder 
   Next 
 End If 
End Sub

您可以查看Store.DisplayName属性以在配置文件中找到所需的商店,然后在 Outlook 中获取特定商店的所需收件箱文件夹。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM