C# 通过windows窗体应用程序从exchange online(Office 365)读取电子邮件

C# 通过windows窗体应用程序从exchange online(Office 365)读取电子邮件,c#,office365,outlook-restapi,C#,Office365,Outlook Restapi,我正在尝试通过windows窗体应用程序读取O365邮箱中的电子邮件。我希望我的应用程序使用我的用户名和密码从O365邮箱读取电子邮件。 是否可以在不在Azure上注册应用程序的情况下访问O365 api?(仅使用用户凭据) 我关注了msdn上的这篇文章, 我在这方面有一个问题: result = context.AcquireToken(resourceId, ClientID, _returnUri); // parameters are no longer valid in this me

我正在尝试通过windows窗体应用程序读取O365邮箱中的电子邮件。我希望我的应用程序使用我的用户名和密码从O365邮箱读取电子邮件。 是否可以在不在Azure上注册应用程序的情况下访问O365 api?(仅使用用户凭据)

我关注了msdn上的这篇文章, 我在这方面有一个问题:

result = context.AcquireToken(resourceId, ClientID, _returnUri); // parameters are no longer valid in this method
是的,你可以用。它是为客户端应用程序而设计的。按照链接,你可以找到很多例子

注意:要创建服务客户端,需要指定Exchange服务器的版本,对于Exchange online,它应该是
ExchangeVersion.Exchange2013\u SP1

ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);

更新:

微软于2020年4月3日宣布,鉴于当前的新冠肺炎危机,Exchange Web服务将在2021年下半年之前继续以最新状态运行,以供仍在积极使用它的租户使用

我们将继续为新创建的应用程序禁用基本身份验证 默认情况下为租户,并开始在中禁用基本身份验证 自2020年10月起没有使用记录的租户

下面的帖子仍然适用于变更,只是被推迟了,没有确切的日期。有关详细信息,请参见上面的链接

原件:

鉴于这是一个在谷歌搜索排名中名列前茅的颇受欢迎的问题,或许值得注意的是,在Exchange Web服务退役之前,只剩下12个月的时间(在撰写本文时)

连接到这些服务的首选方法是通过OAuth

问:当您进行此更改时,我的应用程序会停止工作吗

答:可能吧,是的,这取决于应用程序本身及其编码方式。 如果它使用的是EWS,如果它使用的是基本身份验证,那么是,打开 2020年10月13日,它将无法连接。但是,如果应用程序是 如果使用现代Auth/OAuth,那么不,它将保持原来的工作状态 以前

对于目前正在使用Matt针对Office 365 mail services的上述方法的任何人,这将适用。
任何使用on-prem exchange服务的用户都不会受到影响。

谢谢!我发现了怎么做。如果AutoDiscoveryUrl()速度较慢,则可以像缓存服务url一样缓存该url,也可以按照以下步骤查找设置