Обратный вызов Nodemailer не выполняется в transporter.sendMail
. Также лямбда-ответ aws выдает ответ как внутреннюю ошибку сервера, когда я помещаю инструкцию return в обратный вызов nodemailer. Но когда я помещаю оператор return за пределы обратного вызова, aws lambda отвечает «своим рабочим» сообщением, но не регистрирует ошибку или информацию.
'use strict'
const aws = require('aws-sdk')
const parser = require('lambda-multipart-parser')
const nodemailer = require('nodemailer')
var ses = new aws.SES()
module.exports.sendWithAttachment = async (event) => {
console.log('the evenet is', event)
const result = await parser.parse(event)
console.log('The result is', result)
console.log('The result files is', result.files)
let transporter = nodemailer.createTransport({
SES: ses
})
console.log('Created transporter')
transporter.sendMail(
{
from: 'fromemail',
to: 'toemail',
subject: 'Message',
text: 'I hope this message gets sent!',
attachments: result.files
},
function(err, info) {
if (err) {
console.log(err)
console.log('Email Failed')
return {
statusCode: 200,
headers: {
'Access-Control-Allow-Origin': '*'
},
body: JSON.stringify(
{
message: 'Not working'
},
null,
2
)
}
} else {
console.log('email sent!')
console.log('info message', info)
// Throws internal server error when put the statement here
return {
statusCode: 200,
headers: {
'Access-Control-Allow-Origin': '*'
},
body: JSON.stringify(
{
message: 'its working'
},
null,
2
)
}
}
}
)
// doesn't log the error or info when put here
// return {
// statusCode: 200,
// headers: {
// 'Access-Control-Allow-Origin': '*'
// },
// body: JSON.stringify(
// {
// message: 'its working'
// },
// null,
// 2
// )
// }
}