将Google Cloud Service帐户与群组电子邮件连接时出现问题

问题描述

我在Gsuite管理控制台中将no-reply@domain.com设置为电子邮件组。现在,我想使用我在使用nodemailer的node js中使用该电子邮件地址发送电子邮件。为此,我在Google Cloud中创建了服务帐户,并将no-reply@domain.com组添加为所有者。问题是,当我在节点应用程序中使用这些生成的凭据时,会抛出错误unauthorized_client

我在Gsuite的API权限中添加了client_id和必需的GMAIL范围。只有用户帐户可以使用服务帐户,而不能使用组电子邮件。

这是我的示例nodemailer代码

const smtpTransport = nodemailer.createTransport({
    host: 'smtp.gmail.com',port: 465,secure: true,auth: {
         type: "OAuth2",user: "no-reply@domain.com",serviceClient: "109120716xxxxxxxxxxxxxx",privateKey: "",}
});

我正在按照本教程来完成本https://medium.com/@imre_7961/nodemailer-with-g-suite-oauth2-4c86049f778a

解决方法

您需要确保以下事项:

-设置API keys -确保为客户ID启用Gmail API。您可以遵循此doc并在“ Google API管理器”中搜索“ Gmail API”。

  • 在请求用户权限时,请确保您的客户端为Gmail SMTP设置了“ https://mail.google.com/”范围。

这里有一个类似的Stackoverflow thread,您可以参考。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...