невозможно отправить электронную почту через учетную запись службы googleapi - PullRequest
0 голосов
/ 12 декабря 2018

Я использую Google API для отправки электронных писем. Мне нужно отправить его через служебную учетную запись. Я уже сделал то, что должен сделать в отношении костюма G и учетных данных, но все еще имею ошибку при отправке электронного письма с кодом состояния: 400

код: 400, ошибки: [{домен: «глобальный», причина: «failedPrecondition», сообщение: «неверный запрос»}]}

вот код

const Path = require('path');
const {google} = require('googleapis');
const key = require('../credentials.json');
const base64 = require('base-64')
const oAuthClient = new google.auth.JWT(
    key.client_email,
    null,
    key.private_key,
    ['https://www.googleapis.com/auth/gmail.send', 'https://www.googleapis.com/auth/admin.directory.user', 'https://www.googleapis.com/auth/admin.directory.group'],
    null
);
console.log("auth", oAuthClient)
const gmail = google.gmail("v1", oAuthClient);

const email_lines = ["Content-Type: text/plain; charset=\"UTF-8\"\n",
    "MIME-Version: 1.0\n",
    "Content-Transfer-Encoding: 7bit\n",
    "to: ", "oday.mardini@schongetrunken.de", "\n",
    "from: ", "someone@gmail.com", "\n",
    "subject: ", "the subject", "\n\n",
    "this is the best message"
].join('');
const message = base64.encode(email_lines.trim()).replace(/\+/g, '-').replace(/\//g, '_');

//   const res = await gmail.users.messages.send({'auth':oAuthClient,
//     'userId': 'me',
//     'resource': {
//         'raw': message
//     }})
//     console.log(res)
gmail.users.messages.send({
    auth: oAuthClient,
    userId: 'me',
    resource: {
        raw: message
    }
}, function (err, resp) {
    console.log('err', err);
    console.log('resp', resp);
});
...