Exchange Web 服务连接失败

Posted

技术标签:

【中文标题】Exchange Web 服务连接失败【英文标题】:Exchange web Services failed to connect 【发布时间】:2017-08-16 07:40:34 【问题描述】:

我的办公室 365 有在线交换服务, 我想使用不同的方法将电子邮件发送到其他人的邮箱

然后我找到了 Exchange Web Services,所以我试着做一个基本的例子:

class Program

    static void Main(string[] args)
    
        //note that there no option for exchange server 2016 (my exchange online use exchange server 2016), so i use the default option  
        ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);   

        service.Credentials = new WebCredentials("user@domain.com", "myPassword");
        service.UseDefaultCredentials = false;

        //for log purpose
        service.TraceEnabled = true; 
        service.TraceFlags = TraceFlags.All;

        service.AutodiscoverUrl("user@domain.com", RedirectionUrlValidationCallback);

        EmailMessage email = new EmailMessage(service);
        email.ToRecipients.Add("user2@domain.com");
        email.Subject = "HelloWorld";
        email.Body = new MessageBody("This is the first email I've sent by using the EWS Managed API.");
        email.Send();

    

    private static bool RedirectionUrlValidationCallback(string redirectionUrl)
    
        // The default for the validation callback is to reject the URL.
        bool result = false;

        Uri redirectionUri = new Uri(redirectionUrl);

        // Validate the contents of the redirection URL. In this simple validation
        // callback, the redirection URL is considered valid if it is using HTTPS
        // to encrypt the authentication credentials. 
        if (redirectionUri.Scheme == "https")
        
            result = true;
        
        return result;
    
  

AutodiscoverUrl 中有异常,像这样:

Microsoft.Exchange.WebServices.Data.ServiceXmlDeserializationException: 'The 
expected XML node type was XmlDeclaration, but the actual type is Element.'  

我搜索了一会儿,说exchange找不到我的域名,我的exchange在线设置没问题,我可以发送电子邮件,通过outlook web访问添加约会到我邮箱中的其他人

我已经将我的域名服务器更改为 ns1.bdm.microsoftonline.com ns2.bdm.microsoftonline.com

但仍然没有解决我的问题..

我缺少一些设置吗? 谢谢..

【问题讨论】:

【参考方案1】:

而不是使用

 service.AutodiscoverUrl("user@domain.com", RedirectionUrlValidationCallback);

试试

 service.Url = new Uri("https://outlook.office365.com/EWS/Exchange.asmx");

我建议你设置

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1); 

到 Office365 的最高枚举而不是最低枚举,除非您尝试支持 Exchange 2007。

【讨论】:

以上是关于Exchange Web 服务连接失败的主要内容,如果未能解决你的问题,请参考以下文章

Exchange2010 升级到 2016,2010用户无法通过2016代理访问邮箱,导致连接失败。

CDO 在端口 465 和 587 上连接失败,但在 25 上工作

为啥手机登录QQ邮箱总是显示连接服务器失败?

Xshell5 连接ubuntu20.04.3失败,提示找不到匹配的key exchange算法

Exchange调整入站SMTP连接超时时间

Web 部署任务失败。无法连接...服务器没有响应