【问题标题】:send emails from MY gmail account with OAuth2 and nodemailer使用 OAuth2 和 nodemailer 从我的 gmail 帐户发送电子邮件
【发布时间】:2017-08-05 18:27:38
【问题描述】:

我想通过我自己的服务器从我的 gmail 地址发送电子邮件。我正在使用 nodemailer 并且使用的帐户凭据很不稳定,而且经常无法正常工作并导致此thread

我在那个线程上实现了很多次,但它仍然很不稳定,而且我知道OAuth2 is the way to go

我在google developer console 有一个带有 cliendID 和 clientSecret 的项目,如您所见:

但是如何在没有任何浏览器交互的情况下获得访问令牌?

我似乎在这里遗漏了一些微不足道的东西......

我已经浏览了所有关于 OAuth2、令牌和 API 的谷歌教程和文档,但所有指南都通过浏览器一次性完成。

【问题讨论】:

    标签: google-api gmail google-oauth gmail-api nodemailer


    【解决方案1】:

    转到OAuth Playground,单击右上角的齿轮,检查Use your own OAuth credentials 并插入您的clientIDclientSecret

    然后在左侧列表中选择您想要的Gmail API v1 范围并按照概述的步骤操作,您将获得access_tokenrefresh_token

    【讨论】:

    【解决方案2】:

    Google Oauth2 实际上我知道的所有 Oauth2 实现都要求用户通过网络浏览器授予应用程序访问权限。

    还有一种称为服务帐户的替代类型,它更像是预先授权的 oauth1 service accounts。您可以通过与任何其他用户一样与服务帐户共享文件夹和文件来授予服务帐户访问您的 google 驱动器的权限。因为它们是预先授权的,所以不会弹出带有服务帐户的浏览器窗口。

    如果您有 Google 域帐户 Gsuite,您只能使用 Gmail 服务帐户。管理员可以进入并授予服务帐户访问相关 Gmail 帐户的权限。 Perform G Suite Domain-Wide Delegation of Authority

    如果这是普通用户的 Gmail 帐户,则不能使用服务帐户。您必须使用 Oauth2 弹出请求并保存刷新令牌,以便日后获得访问权限。

    【讨论】:

      猜你喜欢
      • 2021-11-09
      • 2020-06-16
      • 2012-03-30
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 2020-04-30
      • 2012-03-16
      • 1970-01-01
      相关资源
      最近更新 更多