Connection to Office 365 by EWS API

僤鯓⒐⒋嵵緔 提交于 2019-12-17 16:27:04

问题


I am using EWS API in my console application to process mailbox items and my connection script looks like

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2007_SP1);
service.UseDefaultCredentials = true;
service.AutodiscoverUrl("emailService@domain.com");

But i found that my email account was moved to Office 365 cloud. How should i change the authentication ?

i found EWS service url

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

but i dont know how to use it.

Thank you


回答1:


You can use the code below to connect to the EWS on office 365:

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);

service.Credentials = new WebCredentials("emailService@domain.com", "password");
service.AutodiscoverUrl("emailService@domain.com", RedirectionUrlValidationCallback);

You need define one callback function for the AutodiscoveryUrl function, like this:

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;
}



回答2:


I know this is a fairly old solution, but it was still very helpful to me. I have a few tools that worked with the "normal" network version of Exchange, but so far my tests with Exchange Online failed (i got errors like "The Autodiscover service couldn't be located", etc).

Essential here is to use WebCredentials instead of NetworkCredential and a e-mailaddress instead of a username.



来源:https://stackoverflow.com/questions/32355440/connection-to-office-365-by-ews-api

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!