2011-05-16 60 views
2

这里是我的代码:我需要得到与EWS的帮助电子邮件在C#

using System; 
using System.Net; 
using MailListClient.MailListServiceReference; 
using Microsoft.Exchange.WebServices.Autodiscover; 
using Microsoft.Exchange.WebServices.Data; 

namespace MailListClient 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var service = GetBinding(); 

      ServicePointManager.ServerCertificateValidationCallback = (sender, certificate, chain, sslPolicyErrors) => true; 

      try 
      { 
       FindItemsResults<Item> findResults = service.FindItems(
        WellKnownFolderName.Inbox, 
        new ItemView(10)); 

       foreach (Item item in findResults.Items) 
        Console.WriteLine(item.Id); 
      } 
      catch (Exception ex) 
      { 
       Console.WriteLine("Error: " + ex.Message); 
       Console.ReadLine(); 
      } 
     } 

     static ExchangeService GetBinding() 
     { 
      ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1); 
      service.Credentials = new WebCredentials("[email protected]", "password"); 
      try 
      { 
       service.Url = new Uri("https://email.com/AutoDiscover/AutoDiscover.xml"); 
      } 
      catch (AutodiscoverRemoteException ex) 
      { 
       Console.WriteLine("Exception thrown: " + ex.Error.Message); 
      } 
      return service; 
     } 
    } 
} 

,但我得到异常:的请求失败。远程服务器返回错误:(404)未找到。 是什么问题?

+1

你在什么时候抛出异常?当您逐步完成代码时会发生什么? – AllenG 2011-05-16 16:04:50

+0

我在此行查找FindItemsResults findResults = service.FindItems(' – anleon 2011-05-16 16:18:06

回答

3

您的网址可能有误。下面是URL格式我使用的代码肯定是在几个应用程序(2007年和2010年)工作:

https://[fully qualified domain name]/EWS/Exchange.asmx 

你的代码的其余部分看起来是正确的,在粗略的水平。

+0

即使我更改为'https://email.com/EWS/Exchange .asmx':/ – anleon 2011-05-16 16:10:32

+1

@anlean - 你是字面上试图使用email.com还是仅仅使用它作为示例域?因为如果你转到那个链接,你会看到它是由Apache服务器抛出的404错误页面,这似乎不太可能托管EWS。 – 2011-05-16 16:14:10

+0

电子邮件是不是假的,但我注册它来测试EWS是否工作,因为我需要得到一个“真正的”电子邮件,分析它,然后将其发送到另一个服务器/系统/模块。有一些EWS运行的电子邮件提供商吗?或者我怎样才能做到这一点? – anleon 2011-05-17 07:15:56

3

由于您请求的文件不存在。我知道这听起来纯粹是对立的,但这是最简单的答案。

按照此过程需要:

  1. 走出Fiddler2和跟踪请求。它是否在你认为应该去的地方?
  2. 确保你没有拼写错误。
  3. 请参阅您的IT支持给你的文档
  4. 转到您的IT与URL并询问为什么它不起作用。
+0

Fiddler2是非常有用的工具,谢谢!=) – anleon 2011-05-18 20:05:31