如何使用Oauth2读取用户outlook邮件



我正在建立一个服务,扫描人们的电子邮件特定的PDF附件和索引他们。我用OAuth2Gmail实现了这一点,使用他们广泛的Gmail API,工作得很好。

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

我还没有从代码中使用IMAP,但我现在看到的主要问题是:

  1. 如果我阅读电子邮件,它们将在用户的收件箱中设置为"已读",这显然是我不想要的(我不想干扰用户的正常电子邮件使用)。
  2. 我需要与所有的电子邮件收件箱保持联系,或者不断地通过所有的电子邮件收件箱来获取新的电子邮件。

我的问题实际上是;

  1. 除了IMAP之外,没有其他方法可以获得用户outlook.com的电子邮件吗?
  2. 或者我的问题实际上不是问题,我应该为所有outlook电子邮件帐户创建一个IMAP"接收器"吗?

对于第一点的回答,根据Max,您可以使用body.peak来避免这种情况。

对于第2点的回答,根据triplee,您可以连接到所有帐户,然后使用称为IDLE的IMAP扩展。

为了回答第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操作的完整列表。

关于第4点,我相信你的一些问题是问题,而另一些不是。我相信你们没有任何技术问题。然而,我相信你是正确的,IMAP不是为像你这样的应用程序设计的,正如维基百科关于IMAP的文章所示(粗体是我的),

在计算中,Internet Message Access Protocol (IMAP)是一个Internet标准协议,用于电子邮件客户端通过TCP/IP连接从邮件服务器检索电子邮件消息。IMAP由rfc3501定义。

同样,在定义原始IMAP协议的RFC 3501中,它指的是电子邮件客户端,从摘要中读取(粗体是我的),

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

相关内容

  • 没有找到相关文章

最新更新