14
votes

I am trying to read emails from my O365 mailbox through a windows forms application. I want my application to read emails from O365 mailbox using my username and password. Is it possible to access the O365 api without registering the application on the Azure? (only using user credentials)

I followed this article on msdn, https://msdn.microsoft.com/en-us/library/office/dn567668(v=exchg.150).aspx I have an issue in this line:

result = context.AcquireToken(resourceId, ClientID, _returnUri); // parameters are no longer valid in this method
2
If AutodiscoverUrl() is slow, you can cache the service url like this or you can find the settings by following these stepsPrasad De Silva

2 Answers

16
votes

Yes, you can do with with Exchange web service API. It is designed for client application. Follow the link, you can find a lot of examples.

One note is: to create the service client, you need specify the version of the Exchange Server, it should be ExchangeVersion.Exchange2013_SP1 for exchange online.

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
6
votes

(Second) UPDATE:

As of March 18, 2021 - the retirement of Exchange Web Services basic authentication has been placed on hold until further notice. Please see the latest attached link.

UPDATE - Exchange Online deprecating Basic Authentication

(First) UPDATE:

Microsoft announced on the 3rd April 2020, that in light of the current COVID-19 crisis, Exchange Web Services would continue to operate as current until the second half of 2021 for tenants still actively using it.

We will continue to disable Basic Authentication for newly created tenants by default and begin to disable Basic Authentication in tenants that have no recorded usage starting October 2020

Basic Authentication and Exchange Online - April 2020 Update

The below post still applies with respect to the changes, it has just been postponed with no precise date. See the link above for full details.

ORIGINAL:

Given how this is a fairly popular question appearing quite high up on Google search rankings, it's probably worth noting that there is only 12 months left (at the time of writing) to use the Exchange Web Services before it is retired.

The preferred method to connect to these services is through OAuth.

Q: Will my application stop working when you make this change?

A: It might, yes, it depends on the app itself and how it was coded. If it’s using EWS, and if it’s using Basic authentication then yes, on October 13th 2020 it will fail to connect. However, if the app is using Modern Auth/OAuth, then no, it will keep working as it did before.

Upcoming changes to Exchange Web Services (EWS) API for Office 365

For anyone currently using the above method by Matt for Office 365 mail services, this will apply. Anyone using on-prem exchange services remains unaffected.