2012-03-29 17 views
4

我目前拉动邮件从Exchange收件箱是这样的...如何确定电子邮件的通过Exchange Web服务,在C#中的发件人?

var exchangeService = new ExchangeService(ExchangeVersion.Exchange2007_SP1) 
{ 
    Credentials = new NetworkCredential("user", "password", "domain") 
}; 

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

var emails = exchangeService.FindItems(WellKnownFolderName.Inbox, new ItemView(5)); 

foreach (var email in emails) 
{ 
    //var senderEmail = email.??? 
} 

电子邮件对象似乎并没有对获得发件人的电子邮件地址的任何财产。我如何获得?

回答

7

下面是一些快速的来源,我从一个工作项目的例子拉。

基本上,你可以完整投放结果到EmailMessage获得微小的细节。但是,如果你想获得关于发送丰富的细节,(显示名称等),那么你必须做出一个具体的,额外的绑定(Web服务请求)对邮件。

findResults = exchangeService.FindItems(folder.Id, messageFilter, view); 
      foreach (Item item in findResults) 
      { 
       if (item is EmailMessage) 
       { 
        EmailMessage message; 
        if (!toFromDetails) 
         message = (EmailMessage)item; 
        else 
         message = EmailMessage.Bind(exchangeService, item.Id); 

正如你在代码中看到的,我必须执行额外的绑定,因为它可以需要一段时间的选项,我经常与成千上万的结果的处理,从数百个邮箱。有时额外的时间可能不值得给特定的客户。

+0

比谷歌远更有帮助。谢谢。 – Carter 2012-03-30 16:59:36

相关问题