5

nodemailer サイトの指示に忠実に従いましたが、Google サービス アカウントの OAuth2 が機能しません。

「ホスト」をmail.google.comに設定するとECONNタイムアウトが発生する、ホストとしてsmtp.gmail.comを使用すると「401、ユーザー/パスワードが受け入れられず、アクセストークンを作成できません」というエラーが発生します。

3LO の答えは無限にあるようですが、私が 2LO で試したことはありません。今、それをすべて言った。

var nodemailer = require("nodemailer");
var { google } = require("googleapis");

var accessToken;
var expires;
var key = require(“path/to/secrets.json");
var privateKey = key.private_key;

var jwtClient = new google.auth.JWT(key.client_email, null, key.private_key, ["https://mail.google.com/"], null);

jwtClient.authorize(function(err, tokens) {
    if (err) {
        return;
     } else {
    token = tokens
    accessToken = tokens.access_token //this **IS** a valid token
    expires = tokens.expiry_date
     }

 var transporter = nodemailer.createTransport({
        host: "smtp.gmail.com",
        port: 465,
        secure: true,
        auth: {
            type: "OAuth2",
            user: key.client_email, //I've also used my email here
            serviceClient: key.client_id,
            privateKey: privateKey,
            accessToken: accessToken,
            expires: expires,
        },
    });

var mailOptions = {
    from: “me@here.com”
    to: “me@there.com",
    subject: "Ready",
    text: “Really Ready"
    }

transporter.sendMail(mailOptions, function(error, info) {
    if (error) {
        return;
    }
    console.log("Message %s sent: %s", info.messageId, info.response);
});
});

エラーが発生した:

535-5.7.8 ユーザー名とパスワードが受け入れられません。しかし、前述したように、さまざまな構成と設定を試してみましたが、さまざまなエラーが発生しました...

SO ... nodemailerを使用して2LOのサービスアカウントを使用することに成功した人はいますか?

ノード 9.5.0 とノードメーラー ^4.6.0 を使用しています

4

3 に答える 3