2012-04-06 109 views
0

访问Outlook Web服务从部署在企业内部网与.NET Web应用程序中:凭证从.NET Web应用程序

<authentication mode="Windows" /> 
<identity impersonate="true" /> 
在web.config

,我需要能够让用户输入日期和时间以及电子邮件地址,并将日期和时间作为预约添加到电子邮件地址的日历中。

为了让事情开始我想我会尝试和访问邮箱,并得到10封邮件的主题:

ExchangeService myService = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 

myService.Credentials = new WebCredentials("jsmith", "mypassword"); 

myService.AutodiscoverUrl("[email protected]"); 

FindItemsResults<Item> myResults = myService.FindItems(WellKnownFolderName.Inbox, new ItemView(10)); 

哪种作品。我收到了10封电子邮件主题的列表 - 不过,无论我将哪个电子邮件地址作为AutodiscoverUrl方法的参数 - 我最后10封电子邮件的10个主题总是被返回。我如何访问Fred Bloggs电子邮件,并且在我完成此操作后访问他的日历(这是我实际需要执行的操作)并输入约会?感谢您的任何帮助

+0

也许增加一些交换标记(例如exchangewebservices)会很有用。 – IvanH 2012-04-06 14:06:08

回答

0

您给出的作为myService.AutodiscoverUrl参数的电子邮件仅用于查找服务。因此,对于所有电子邮件,您可能会从同一个域名的所有电子邮件获得相同的服务。要访问其他用户收件箱,您需要转到他们的文件夹(如果您有适当的权利)。

Microsoft.Exchange.WebServices.Data.FolderId _cal = new Microsoft.Exchange.WebServices.Data.FolderId(WellKnownFolderName.Inbox, new Mailbox("[email protected]")); 
Folder rootfolder = Folder.Bind(myService, _cal); 
FindItemsResults<Item> myResults = rootfolder.FindItems(new ItemView(10)); 
+0

我不是100%确定它是否起作用,它是通过阅读日历文件夹而不用实际运行它而改编的。 – IvanH 2012-04-06 14:04:47

相关问题