如何使用 gmail api 使用 nodemailer smtp oauth2?收到错误 535:不接受用户和通行证
Posted
技术标签:
【中文标题】如何使用 gmail api 使用 nodemailer smtp oauth2?收到错误 535:不接受用户和通行证【英文标题】:How to work nodemailer smtp oauth2 with gmail api? Got error 535: user and pass not accepted 【发布时间】:2018-09-28 05:07:01 【问题描述】:我在 google API 控制台仪表板上启用了 Gmail API。 我创建了选择 OAuth 客户端 ID、Web 应用程序和“https://developers.google.com/oauthplayground”作为授权重定向 uri 的凭据。 我通过使用上面的凭据在 OAuth 2.0 操场上玩游戏并为范围启用 https://mail.google.com/ 获得了刷新令牌。
const mailer = require('feathers-mailer');
const smtpTransport = require('nodemailer-smtp-transport');
app.use('/api/mailer', mailer(smtpTransport(
service: 'gmail',
host: 'smtp.gmail.com',
port: 587,
secure: false,
requireTLS: true,
auth:
type: 'OAuth2',
user: app.get('gmail'),
scope: 'https://mail.google.com/',
clientId: app.get('gmail_secret').client_id,
clientSecret: app.get('gmail_secret').client_secret,
refreshToken: app.get('gmail_credentials').refresh_token
)));
我收到错误 535:不接受用户名和密码,包括“command:auth plain”以防万一。
我确信这些应用程序得到了正确的值,因为 我已经用确切的值替换了应用程序,但它仍然给出了同样的错误。 我还尝试了删除“主机”、“端口”、“安全”、“requireTLS”的身份验证对象。同样的错误。 我尝试了身份验证:主机:'smtp.gmail.com',端口:'465',安全:真。同样的错误。 在本地环境中,以防有助于修复错误。 如何解决这个 535 错误?
【问题讨论】:
【参考方案1】:Feathers-Mailer 包含 nodemailer 并自动执行.createTransport
。 SMTP 传输模块是错误并且不需要。 mailer(transport-object)
工作。
【讨论】:
以上是关于如何使用 gmail api 使用 nodemailer smtp oauth2?收到错误 535:不接受用户和通行证的主要内容,如果未能解决你的问题,请参考以下文章
如何设置凭据以从 GCE VM 命令行使用 Gmail API?
访问未授予或过期 GMAIL API 和 Oauth2 / 如何使用 GMAIL API 和 GSuite 域设置电子邮件签名