使用NodeJS从AWS Lambda发送多个PDF时出现问题

时间:2020-04-29 11:45:45

标签: node.js pdf aws-lambda nodemailer

我需要从S3中提取多个pdf文件,并将其发送给一组收件人。我可以提取一个PDF并将其发送给小组,他们可以很好地打开PDF。当我尝试以下代码时,我能够发送多个PDF,但是我们无法打开这些PDF。我们收到以下错误:

“ Adob​​e Acrobat Reader无法打开'filename.pdf',因为它不是受支持的文件类型,或者因为文件已损坏(例如,它作为电子邮件附件发送并且未正确解码)。 “

这是我正在使用的代码:

let attachments = reportNameKeys.map((reportNameKey) => {
  let reportName = reportNameKey.substring(subStringNum);
  const s3FileData = getS3File(process.env.BUCKET, reportNameKey).then(
    function (fileData) {
      return fileData;
    }
  );
  return {
    filename: reportName,
    content: s3FileData.Body,
  };
});

const mailOptions = {
  from: 'no-reply@example.com',
  subject: `Subject`,
  html: `<p>Attachments are attached</p>`,
  to: recipients,
  attachments: attachments,
};

const transporter = nodemailer.createTransport({
  SES: ses,
});

transporter.sendMail(mailOptions, function (err, info) {
  if (err) {
    console.error(err);
    console.error('Error sending email');
  } else {
    console.log('Email sent successfully');
    callback();
  }
});

似乎在我的循环中某个地方,文档的编码搞砸了。任何帮助将不胜感激。

0 个答案:

没有答案