【发布时间】:2017-04-25 15:58:26
【问题描述】:
我想要在公司做的最简单的事情是检索邮件。我尝试了 Imap - 没有成功,(ImapX 根本没有连接,也没有显示错误)然后我来到了 EWS。
但也涉及一些巫术魔法。 这是有一些错误的代码:
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.TraceEnabled = true;
service.TraceFlags = TraceFlags.All;
service.UseDefaultCredentials = true;
service.Url = new Uri("https://some.com/EWS/Exchange.asmx"); // The request failed. Unable to connect to the remote server
var folder = Folder.Bind(service, WellKnownFolderName.Inbox);
///////////////////another try
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.TraceEnabled = true;
service.TraceFlags = TraceFlags.All;
service.UseDefaultCredentials = true;
service.AutodiscoverUrl("someone@some.com"); // Discover server not found
var folder = Folder.Bind(service, WellKnownFolderName.Inbox);
但是,我可以连接到 wsdl 版本:
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.TraceEnabled = true;
service.TraceFlags = TraceFlags.All;
service.UseDefaultCredentials = true;
service.Url = new Uri("https://some.com:444/EWS/Services.wsdl");//Wow! It worked.
var folder = Folder.Bind(service, WellKnownFolderName.Inbox);//duh, Method Not Allowed ........
return null;
我到底如何连接到 EWS?我能够通过 Outlook 进行连接,并从我的域帐户的 Autodiscover.xml 文件中获取了所有这些地址。这个问题让我大吃一惊。
更新
这是 IMAP 服务器的示例:
var client = new ImapX.ImapClient("imap.some.com", 993, true);
client.Connect(); //just do nothing. nothing is connected, no errors.
【问题讨论】:
-
鉴于 所有 电子邮件客户端都可以使用 POP3 和 IMAP4 连接到 Exchange,您应该说明您尝试了什么以及问题所在。 Outlook 不使用 Web 服务进行连接,它使用 IMAP4
-
至于您的代码 - Web 服务由 WSDL定义。没有“WSDL 版本”。如果您使用 WSDL URL 来生成代理,您甚至不需要指定 URL,它作为默认地址存储在代理本身中
-
最后 - 您的第一个和第二个 URL 不 使用相同的端口。 SSL 使用端口 443。第二个 URL 使用端口 444
-
我通过some.com/EWS/Exchange.asmx 获取的这个 URL,它只是向我展示了 svcutil.exe 的示例
标签: c# exchange-server