我的目标是拥有一个带有2个日期参数的加载项,并显示我没有回复的电子邮件。我的想法是比较收件箱和发件箱之间的会话ID,并显示匹配的电子邮件。
在制作Outlook插件方面,我有点像菜鸟,所以非常感谢任何帮助或建议。
我找到了这段代码:
Microsoft.Office.Interop.Outlook.Application app = null;
Microsoft.Office.Interop.Outlook._NameSpace ns = null;
Microsoft.Office.Interop.Outlook.PostItem item = null;
Microsoft.Office.Interop.Outlook.MAPIFolder inboxFolder = null;
Microsoft.Office.Interop.Outlook.MAPIFolder subFolder = null;
try
{
app = new Microsoft.Office.Interop.Outlook.Application();
ns = app.GetNamespace("MAPI");
ns.Logon(null,null,false, false);
inboxFolder = ns.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderInbox);
subFolder = inboxFolder.Folders["MySubFolderName"]; //folder.Folders[1]; also works
// there's of course code after this but I've omitted it from the post
}
我有两个问题。 首先,什么是MAPI文件夹? 其次在我的inboxFolder中,我可以以某种方式将参数传递给GetDefaultFolder方法,仅在两个日期之间接收收件箱邮件吗?
其次, 如果我对发件箱文件夹做同样的事情, 有没有办法比较inboxFolder和outboxFolder,并创建一个新的集合,只有与ConversationID匹配的电子邮件?
提前致谢
答案 0 :(得分:1)
MAPIFolder -see http://msdn.microsoft.com/en-us/library/office/aa210948(v=office.11).aspx。您可能希望使用OutlookSpy来查看各种Outlook对象。
您需要使用Items.Find / FindNext或Items.Restrict来过滤消息。
不要比较收件箱和已发送邮件文件夹,而是查看PR_LAST_VERB_EXECUTED属性(可使用MailItem.PropertyAccessor.GetProperty访问),以查看邮件是否已被回复或转发。