我有一个问题。我需要用Gmail API创建电子邮件发送函数。在文档中,它告诉我要创建一个createTransport
函数,如下所示:
const transport = nodemailer.createTransport({
service: "gmail",
auth: {
type: "OAuth2",
user: "horvatlucian1@gmail.com",
clientId: CLIENT_ID,
clientSecret: CLIENT_SECRET,
refreshToken: REFRESH_TOKEN,
accessToken: accessToken,
},
})
3条答案
按热度按时间qvk1mo1f1#
当您特灵传递accessToken时,存在类型脚本问题,因为在google oauth2client中,
getAccessToken()
的返回类型是https://github.com/googleapis/google-auth-library-nodejs/blob/b0ddb7512fb9ed1e51b6874b7376d7e1f26be644/src/auth/oauth2client.ts#L331不受应为字符串的节点邮件程序类型支持:https://github.com/DefinitelyTyped/DefinitelyTyped/blob/7827d853a1d623dd5345d9a11ced3e15eb5d3d8b/types/nodemailer/lib/xoauth2.d.ts#L24
通过查看getAccessToken的返回类型,您可以看到令牌位于类型为string的内部,因此要修复该问题,只需从accessToken中解构令牌即可。
v6ylcynt2#
1/
第一个
euoag5mw3#
nodemailer.createTransport中需要的accessToken可以为空
因此,为了避免错误,您必须执行以下操作