Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何连接到Exchange?_C#_Exchange Server - Fatal编程技术网

C# 如何连接到Exchange?

C# 如何连接到Exchange?,c#,exchange-server,C#,Exchange Server,在我的公司里,最简单的事情就是检索邮件。我试过Imap,但没有成功,(ImapX根本没有连接,也没有显示错误),于是我来到EWS 但也有一些巫术的参与。 下面是有一些错误的代码: ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); service.TraceEnabled = true; service.TraceFlags = Trace

在我的公司里,最简单的事情就是检索邮件。我试过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.

确保已为EWS Web服务配置autodisocver。使用microsoft测试连接工具分析exchange发现设置:

像这样使用它:

var ESserver = ExchangeServerService.Connect();

鉴于所有电子邮件客户端都可以使用POP3和IMAP4连接到Exchange,您应该解释您尝试了什么以及出现了什么问题。Outlook不使用web服务进行连接,它使用IMAP4As作为代码-web服务由WSDL定义。没有“WSDL版本”。如果您使用WSDL URL生成代理,您甚至不需要指定URL,它将作为默认地址存储在代理中。最后,您的第一个URL和第二个URL不使用相同的端口。SSL使用端口443。第二个URL使用端口444我通过该URL获得的,它只是向我展示了svcutil的示例。exe@Panagiotis很抱歉,你的回答不正确。Outlook连接到Microsoft Exchange环境时,请使用默认MAPI或更高版本的MAPI over HTTP。也不使用IMAP或POP3,因此可能会根据默认设置禁用。有关更多信息,请参阅。还要注意的是,Outlook for MAC使用EWS(没有pop3或MPAI),正如我所写的,我知道这是MSDN的精确副本,而且没有-这不起作用。找不到Discovery server。所以这是您的问题,而不是实际的实现。是的,这是我的问题。这就是问题出现的原因。有没有更安全的方法来检查它,而不是将我的凭证传递给第三方?我同意。。正如他们在免责声明中提到的,“我们强烈建议您为使用此工具创建一个测试帐户,并在完成连接测试后立即删除此帐户。”如果这对您可行,请尝试创建一个测试帐户。
var ESserver = ExchangeServerService.Connect();