我是 Outlook 插件开发的新手。我正在编写一个简单的应用程序,它打印出电子邮件被拖入的文件夹的名称。IE:收件箱到收件箱中的子文件夹。我遇到的问题是,有时会返回正确的 MailItem.Parent.Name,但大多数情况下它是源文件夹而不是目标文件夹。我不明白为什么这可能是因为应该为目标上的 ItemAdd 触发事件。
这是一些代码:
public Microsoft.Office.Interop.Outlook.Application OutlookApplication;
public Inspectors OutlookInspectors;
public Inspector OutlookInspector;
public MailItem OutlookMailItem;
private MAPIFolder inboxFolder;
private MailItem msg;
private Folder fdr;
public void OnConnection(object application, Extensibility.ext_ConnectMode connectMode, object addInInst, ref System.Array custom)
{
OutlookApplication = application as Microsoft.Office.Interop.Outlook.Application;
OutlookInspectors = OutlookApplication.Inspectors;
OutlookInspectors.NewInspector += new Microsoft.Office.Interop.Outlook.InspectorsEvents_NewInspectorEventHandler(OutlookInspectors_NewInspector);
inboxFolder = this.OutlookApplication.Session.GetDefaultFolder(OlDefaultFolders.olFolderInbox);
foreach (Folder f in inboxFolder.Folders)
{
f.Items.ItemAdd += new ItemsEvents_ItemAddEventHandler(InboxItems_ItemAdd);
}
}
void InboxItems_ItemAdd(object Item)
{
msg = Item as MailItem;
fdr = msg.Parent as Folder;
MessageBox.Show("Folder Name: " + fdr.Name);
}