C# 如何通过outlook COM添加帐户?

C# 如何通过outlook COM添加帐户?,c#,com,outlook,C#,Com,Outlook,我已经阅读了大量使用Outlook COM库以编程方式访问Outlook的示例。对于上下文,我的场景如下所示: Outlook.Application app = new Outlook.Application(); Outlook.NameSpace ns = app.GetNamespace("MAPI"); Recipient oRep = ns.CreateRecipient("notMe@notMe.com"); ns.Logon("notMe@notMe.com", "passwor

我已经阅读了大量使用Outlook COM库以编程方式访问Outlook的示例。对于上下文,我的场景如下所示:

Outlook.Application app = new Outlook.Application();
Outlook.NameSpace ns = app.GetNamespace("MAPI");
Recipient oRep = ns.CreateRecipient("notMe@notMe.com");
ns.Logon("notMe@notMe.com", "password", false, true);
MAPIFolder inbox = ns.GetSharedDefaultFolder(oRep, OlDefaultFolders.olFolderInbox);
var foo = inbox.Items.Count;
我需要查看其他用户的收件箱中有多少封电子邮件。我有那个用户的电子邮件地址和密码。这是因为我们共享一个我需要监视的部门邮箱

我尝试了以下几种变体:

Outlook.Application app = new Outlook.Application();
Outlook.NameSpace ns = app.GetNamespace("MAPI");
Recipient oRep = ns.CreateRecipient("notMe@notMe.com");
ns.Logon("notMe@notMe.com", "password", false, true);
MAPIFolder inbox = ns.GetSharedDefaultFolder(oRep, OlDefaultFolders.olFolderInbox);
var foo = inbox.Items.Count;
仅当我通过添加其他帐户配置了当前计算机outlook时,此选项才有效。我希望它能够在任何带有outlook的计算机上工作,无论以前是否已将“notMe”添加到outlook。我看到过这样的建议:

注销并退出应用程序,然后在尝试访问其他帐户之前重新打开它

访问文件夹,如ns.folders[“notMe@notMe.com"];


到目前为止,一切都不起作用。非常感谢您的帮助。

GetSharedDefaultFolder是一个不错的选择。你打电话的时候有没有出错?您是否有权访问该邮箱\文件夹?我没有收到错误,我收到的是我的收件箱,而不是其他用户的收件箱。如果我提前为两个帐户设置outlook,我确实会收到另一个用户的收件箱,但我不想这样做。因此,无论您将哪个收件人传递给CreateRecipient,您最终都会收到自己的邮箱?我错了。我没有收到我的收件箱。我确实得到了我假设的另一个收件箱,但是如果我调用任何方法,我会得到一个异常。本例中的最后一行抛出System.Runtime.InteropServices.COMException:{“操作失败”。}。我已验证电子邮件和密码是否正确。什么电子邮件和密码?你什么时候打电话登录?登录采用现有配置文件的名称,而不是SMTP地址。未使用密码参数。如果从Outlook打开该文件夹(文件|打开|其他用户的文件夹),会发生什么情况?