具有gmail服务帐户的Nodemailer

时间:2017-10-16 14:18:29

标签: gmail-api nodemailer

我实施了#34;无回复"发送自动电子邮件的帐户。我是否需要访问密钥/刷新令牌,如果是,我可以在哪里为服务帐户生成它们?

目前我有这个:

noreply = nodemailer.createTransport({
    host: 'smtp.gmail.com',
    port: 465,
    secure: true,
    auth: {
        type: 'OAuth2',
        user: smtpConfig.client_email,
        serviceClient: smtpConfig.client_id,
        privateKey: smtpConfig.private_key,
    }
});

不幸的是,这给了我这个:

{ Error: Invalid login: 535-5.7.8 Username and Password not accepted. Learn more at
535 5.7.8  https://support.google.com/mail/?p=BadCredentials h81sm3513839itb.18 - gsmtp
    at SMTPConnection._formatError
...

谢谢!

1 个答案:

答案 0 :(得分:0)

您不需要具有服务帐户的refresh token,nodemailer会自动为您生成access key

您不能仅使用服务帐户发送GSuite帐户的电子邮件,而不能发送Gmail帐户的电子邮件。

如果您有Gmail帐户,则可以使用3-legged OAuth2 authentication 或打开2FA,生成App Password并使用here

如果您使用的是GSuite帐户,则可以使用ServiceAccount,但必须确保该帐户具有{strong> here中所述的 G Suite域范围委托,然后您需要提供如here

所述访问GSuite域