如何使用Oauth2阅读用户outlook电子邮件?

kra*_*r65 6 email outlook imap oauth hotmail

我正在构建一项服务,扫描人们的电子邮件以查找特定PDF附件并为其编制索引.我实现了这一点,OAuth2因为它Gmail使用了广泛的Gmail API,效果非常好.

我现在想要实现相同的outlook/live/hotmail.所以我四处搜索,我主要读到 可以 " IMAP使用连接到Outlook.com OAuth 2.0"(这里的教程).问题是这实现了完整的IMAP连接.据我所知,这更适用于用户可以查看和发送电子邮件的售后市场应用程序,而不适用于需要在后台下载某些电子邮件的应用程序(如我的).

我没有IMAP在代码中工作,但我现在看到的主要问题是:

  1. 如果我阅读电子邮件,他们将被设置为在用户的收件箱中"读取",我显然不想要(我不想干扰用户的正常电子邮件使用).
  2. 我需要与所有电子邮件收件箱保持联系,或者不断循环浏览所有电子邮件收件箱以获取新电子邮件.

我的问题其实是;

  1. 除了IMAP让用户outlook.com发送电子邮件之外别无他法吗?
  2. 或者我的问题实际上不是问题,我应该IMAP为所有outlook电子邮件帐户创建一个"接收者" 吗?

小智 1

在回答第 1 点时,根据Max 的说法,您可以使用body.peak来避免这种情况。

作为对第 2 点的回答,根据Triple 的说法,您可以连接到所有帐户,然后使用名为 的 IMAP 扩展IDLE

在回答第 3 点时,我发现Outlook REST API包含读取电子邮件的选项,您可以GET https://outlook.office.com/api/beta/me/messages定期调用以获取用户帐户中的所有消息,或者您可以GET https://outlook.office.com/api/v1.0/me/messages定期调用以获取用户的收件箱。您可以在此处找到 REST API 操作的完整列表。

在回答第四点时,我相信你的一些问题是问题,而另一些则不是。我相信你没有任何技术问题。但是,我相信您是正确的,IMAP 不是为像您这样的应用程序而设计的,如维基百科关于 IMAP 的文章所示,其中内容如下(粗体是我的),

在计算领域,Internet 消息访问协议 (IMAP) 是一种 Internet 标准协议,电子邮件客户端使用该协议通过 TCP/IP 连接从邮件服务器检索电子邮件消息。IMAP 由 RFC 3501 定义。

此外,在定义原始 IMAP 协议的RFC 3501中,它指的是电子邮件客户端,从摘要中可以看出(粗体是我的),

Internet 消息访问协议版本 4rev1 (IMAP4rev1) 允许客户端访问和操作服务器上的电子邮件消息。