访问远程服务器中的邮件

时间:2014-08-04 07:12:25

标签: c# email outlook mapi

任何人都可以告诉我如何使用他的个人资料名称和密码阅读其他用户的收件箱。

我使用下面的代码来阅读我的收件箱。它工作正常。

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

   for(int i=1;i<=subFolder.Items.Count;i++)
   {
      item = (Microsoft.Office.Interop.Outlook.MailItem)subFolder.Items[i];
      Console.WriteLine("Body: {0}", item.Body);
   }
}

现在我需要阅读其他用户的收件箱。我使用下面的代码。但它仍然只是访问我的收件箱。任何人请建议。

ns.Logon("anotheruser@domain.com", "password", false, true); 

1 个答案:

答案 0 :(得分:1)

Namespace.Logon采用现有Outlook配置文件的名称,而不是电子邮件地址。 Password参数不执行任何操作。

要打开其他用户的文件夹,请使用Namespace.GetSharedDefaultFolder。请注意,当前用户必须具有访问该文件夹的明确权限。