使用OAuth2和nodemailer从MY gmail帐户发送电子邮件

时间:2017-03-15 06:33:01

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

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

我已经多次在该线程上实现了所有内容,但仍然是片状,我也知道OAuth2 is the way to go

我在google developer console中有一个cliendID和clientSecret的项目,你可以看到:

enter image description here

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

我似乎在这里错过了一些微不足道的事情......

我已经浏览了所有关于OAuth2,令牌和API的谷歌教程和文档,但所有指南都在浏览器中进行了一次。

2 个答案:

答案 0 :(得分:3)

转到OAuth Playground,点击右上方的cog,查看Use your own OAuth credentials并插入clientIDclientSecret

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

答案 1 :(得分:1)

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

有一种称为服务帐户的替代类型,这更像是oauth1 service accounts被预授权。您可以通过与任何其他用户共享文件夹和文件与服务帐户来授予服务帐户访问您的Google云端硬盘的权限。因为它们是预先授权的,所以没有弹出服务帐户的浏览器窗口。

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

如果这是普通用户Gmail帐户,则无法使用服务帐户。您必须使用Oauth2弹出请求并保存刷新令牌,以便您以后可以访问。