Nodemailer Oauth2 error : unauthorized_client
Nodemailer Oauth2 error : unauthorized_client
我正在尝试在 nodejs 应用程序上使用 Oauth 和 nodemailer 发送邮件,我没有使用 Oauth 就做到了,但是我的密码写在代码中所以我转向了 Oauth。
我只想连接自己以自动方式发送邮件。
我在 google 云平台上设置了一个项目和一个服务帐户。我添加了 gmail api 并写了一些代码:
var smtpTransport = nodemailer.createTransport({
host:'smtp.gmail.com',
port:465,
secure:true,
auth:{
type: 'OAuth2',
user: 'thomas.legrand.test@gmail.com',
serviceClient:config.client_id,
privateKey:config.private_key
}
});
var mail = {
from: "thomas.legrand.test@gmail.com",
to: "thomas.legrand26@gmail.com",
subject:"Un sujet abstrait",
html:"<h1> Ceci est un mail de test </h1><h2> et ceci un sous titre </h2> "
};
smtpTransport.on('token', token => {
console.log('A new access token was generated');
console.log('User: %s', token.user);
console.log('Access Token: %s', token.accessToken);
console.log('Expires: %s', new Date(token.expires));
});
smtpTransport.sendMail(mail, function(error, response) {
if(error) {
console.log("Erreur lors de l'envoie du mail ");
console.log(error);
}else {
console.log("succes")
}
smtpTransport.close();
});
但是我得到了一个我无法解决的 error (unauthorized_client)。
我希望你能帮助我或至少给我提示!
一切看起来都很好,但请确保以下事项:
Gmail SMTP 的正确 OAuth2 范围是 https://mail.google.com/,请确保您的客户端在请求用户权限时设置了此范围。
确保已为您的客户端 ID 启用 Gmail API 访问权限。为此,请在 Google API 管理器中搜索 Gmail API,然后单击“启用”
此外,请确保正确传递了 clientId 和私钥。
确认您遵循了这些步骤以确保您以正确的方式设置您的客户端:
然后不要忘记启用您的 Gmail API,如下所示:
此外,我建议您查看 Gmail API Quickstart。
我正在尝试在 nodejs 应用程序上使用 Oauth 和 nodemailer 发送邮件,我没有使用 Oauth 就做到了,但是我的密码写在代码中所以我转向了 Oauth。
我只想连接自己以自动方式发送邮件。 我在 google 云平台上设置了一个项目和一个服务帐户。我添加了 gmail api 并写了一些代码:
var smtpTransport = nodemailer.createTransport({
host:'smtp.gmail.com',
port:465,
secure:true,
auth:{
type: 'OAuth2',
user: 'thomas.legrand.test@gmail.com',
serviceClient:config.client_id,
privateKey:config.private_key
}
});
var mail = {
from: "thomas.legrand.test@gmail.com",
to: "thomas.legrand26@gmail.com",
subject:"Un sujet abstrait",
html:"<h1> Ceci est un mail de test </h1><h2> et ceci un sous titre </h2> "
};
smtpTransport.on('token', token => {
console.log('A new access token was generated');
console.log('User: %s', token.user);
console.log('Access Token: %s', token.accessToken);
console.log('Expires: %s', new Date(token.expires));
});
smtpTransport.sendMail(mail, function(error, response) {
if(error) {
console.log("Erreur lors de l'envoie du mail ");
console.log(error);
}else {
console.log("succes")
}
smtpTransport.close();
});
但是我得到了一个我无法解决的 error (unauthorized_client)。
我希望你能帮助我或至少给我提示!
一切看起来都很好,但请确保以下事项:
Gmail SMTP 的正确 OAuth2 范围是 https://mail.google.com/,请确保您的客户端在请求用户权限时设置了此范围。
确保已为您的客户端 ID 启用 Gmail API 访问权限。为此,请在 Google API 管理器中搜索 Gmail API,然后单击“启用”
此外,请确保正确传递了 clientId 和私钥。
确认您遵循了这些步骤以确保您以正确的方式设置您的客户端:
然后不要忘记启用您的 Gmail API,如下所示:
此外,我建议您查看 Gmail API Quickstart。