Gmail API NodeMailer в AWS Lambda не работает - PullRequest
0 голосов
/ 09 июля 2019

Я использую nodemailer с gmail API для отправки писем.

Следующий код: -

var nodemailer = require('nodemailer');
var transporter = await nodemailer.createTransport({
    service: 'Gmail',
    auth: {
        user: 'xx@usr.com',
        pass: 'xxx'
    }
});
console.log("Starting");
await transporter.sendMail({
    from: 'xx@google.com',
    to: 'xx@google.com',
    subject: 'Hello !',
    text: "Hello"
}, function(data, info){

});

Код отлично работает на локальной и отправке почты.

Но при использовании внутри лямбды ничего не происходит.Функция успешно выполнена.

1 Ответ

0 голосов
/ 09 июля 2019

Ошибка, вероятно, будет в коде (1) , (2) IAM (для SES см. Nodemailer SES doc , Подключение к конечной точке SMTP Amazon SES и FAQ по SES ) или (3) (если lambda работает из частного VPC и сеть не полностью настроена).

Или, может быть, он работает нормально (см. Комментарий @ TheProgrammer в этот вопрос )

Чтобы просмотреть и понять ошибку, попробуйте следующее:

  1. Добавление регистрации к обратному вызову ошибки метода sendMail ( см. ):

    transporter.sendMail({
        from: 'sender@example.com',
        to: 'recipient@example.com',
        subject: 'Message',
        text: 'I hope this message gets delivered!'
    }, (err, info) => {
        console.log(info.envelope);
        console.log(info.messageId);
        console.log(err);
    });
    
  2. Просмотр ошибок в журналах CloudWatch (доступ напрямую из Просмотр журналов в CloudWatch , docs )

...