Visual Studio使用Microsoft.Office.Interop.Outlook

时间:2016-12-11 18:20:19

标签: c# office-interop

我正在开发一个小工具,用于从C#中获取Outlook中的电子邮件。 下面的代码工作正常

Microsoft.Office.Interop.Outlook.Application myApp = new Microsoft.Office.Interop.Outlook.Application();
Microsoft.Office.Interop.Outlook.NameSpace mapiNameSpace = myApp.GetNamespace("MAPI");
Microsoft.Office.Interop.Outlook.MAPIFolder myInbox = mapiNameSpace.Folders["mymailbox@provider.nl"].Folders["specificFolder"];

但是是否可以用变量替换特定的邮箱和文件夹以使其成为flexibel?

以下不起作用,因为程序以错误结束,说它无法找到对象:

string MailBox="mymailbox@provider.nl";
string MailFolder="specificFolder";
Microsoft.Office.Interop.Outlook.MAPIFolder myInbox =    
    mapiNameSpace.Folders[MailBox].Folders[MailFolder];

1 个答案:

答案 0 :(得分:0)

答案比我想象的要简单得多,虽然没有放弃。 虽然MailBoxMailFolder都定义为string类型,但我必须将代码更改为以下才能使其正常工作

string MailBox="mymailbox@provider.nl";
string MailFolder="specificFolder";
Microsoft.Office.Interop.Outlook.MAPIFolder myInbox =    
    mapiNameSpace.Folders[MailBox.ToString()].Folders[MailFolder.ToString()];