2016-12-16 60 views
0

我的应用程序针对Office 2010及更高版本。我正在尝试编写一个自动处理传入电子邮件的函数。但是,我发现只有在默认电子邮件帐户中收到MailItem时才会触发该事件。如果用户在Outlook中添加了多个电子邮件帐户,我希望所有这些帐户都指向相同的事件处理程序(如果可能)。检索特定Outlook帐户的文件夹

这里是我到目前为止有:

var inbox = _outlookApplication.Session.GetDefaultFolder(OlDefaultFolders.olFolderInbox); 
items = inbox.Items; 

if (inbox != null) 
      items.ItemAdd += new ItemsEvents_ItemAddEventHandler(OnIncomingEmail); 

我试图通过_outlookApplication.Session.Accounts循环对象,但无法找到它可以让我找回的文件夹特定帐户的方法。

任何帮助将不胜感激!

+1

请参阅[此问题](http://stackoverflow.com/questions/33953386/vba-to-select-mailbox-if-an-account-has-multiple-mailboxs)其中有VBA代码来获取该文件夹每个帐户 - 它可能会有所帮助。 – stuartd

回答

1

而不是使用Namespace.GetDefaultFolder,通过Namespace.Stores收集并调用Store.GetDefaultFolder。准备好处理错误,因为某些商店(特别是如果它们不是默认商店的话)可能没有全部或至少一些默认文件夹。