【问题标题】:How to read users outlook email using Oauth2?如何使用 Oauth2 阅读用户的 Outlook 电子邮件?
【发布时间】:2015-10-28 03:45:31
【问题描述】:

我正在构建一项服务,用于扫描人们的电子邮件以查找特定的 PDF 附件并将它们编入索引。我用OAuth2Gmail 实现了这个,使用他们广泛的Gmail API,效果很好。

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

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

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

我的问题其实是;

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

【问题讨论】:

  • 第 1 点不是问题。您只需要使用 fetch 的 body.peek 变体来避免设置读取标志。
  • 关于第 2 项,您可能应该每个帐户有一个连接,并使用 IMAP IDLE 扩展,这在很大程度上无处不在。

标签: email oauth outlook imap hotmail


【解决方案1】:

在回答第 1 点时,根据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 操作列表here

在回答第 4 点时,我相信您的一些问题是问题,而另一些则不是。我相信你没有任何技术问题。但是,我相信你是正确的,IMAP 不是为像你这样的应用程序设计的,如Wikipedia article on IMAP 所示(粗体是我的),

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

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

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

【讨论】:

    猜你喜欢
    • 2011-12-21
    • 2022-06-13
    • 1970-01-01
    • 2011-08-18
    • 1970-01-01
    • 2017-09-05
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多