问题
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
回答1:
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);
回答2:
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.
来源:https://stackoverflow.com/questions/31722482/read-emails-from-exchange-online-office-365-through-windows-forms-application