微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

aws ses:内容必须具有单一的内容类型

如何解决aws ses:内容必须具有单一的内容类型

我正在使用 pdfkit 生成 pdf。 Pdfkit 在文件系统上创建文件

然后我读取并转换为 base64 ,它再次附加到 SES.sendEmail()

 fs.readFile(pdfPath,{ encoding: 'base64'},function(err,data) {
          if (err) {
            throw new Error(err)
          }
        const args = {
        bccMails: emails,toEmails: [email],bodyTxt: subject,bodyHtml: email_body,subject,rawData: data,};
      SesService.sendEmail(args);
        }
  );

这是SesService.js

const aws = require('aws-sdk');
const { EMAIL } = require('config');

const {
  AWS,} = require('config');

const configs = {
  accessKeyId: AWS.ACCESS_KEY_ID,secretAccessKey: AWS.ACCESS_KEY_SECRET,region: AWS.REGION,};
aws.config.update(configs);

const SES = new aws.SESV2();

function getEmailMeta({
  subject,bodyTxt,ccEmails,rawData,toEmails,bodyHtml,bccEmails,configName,}) {
  return {
    ConfigurationSetName: configName,Content: {
      Raw: {
        Data: rawData,},Simple: {
        Body: {
          Html: {
            Charset: 'UTF-8',Data: bodyHtml,Text: {
            Charset: 'UTF-8',Data: bodyTxt,Subject: {
          Charset: 'UTF-8',Data: subject,Destination: {
      BccAddresses: bccEmails,CcAddresses: ccEmails,ToAddresses: toEmails,FeedbackForwardingEmailAddress: EMAIL,FromEmailAddress: `"Org" <${EMAIL}>`,};
}
const sendEmail = ({
  subject,}) => {
  const emailMata = getEmailMeta({
    subject,});
  SES.sendEmail(emailMata).promise()
    .then((res) => console.log(res))
    .catch((err) => console.log(err));
};

module.exports = {
  sendEmail,};

我遇到以下错误

9|notifica |     at IncomingMessage.emit (events.js:333:22) {
9|notifica |   message: 'Content must have a single content type.',9|notifica |   code: 'BadRequestException',9|notifica |   time: 2021-04-12T11:31:07.832Z,9|notifica |   requestId: '50f0e59a-f3d0-4ad7-a7d1-1be26cc8f678',9|notifica |   statusCode: 400,9|notifica |   retryable: false,9|notifica |   retryDelay: 83.80674432260362
9|notifica | }

我尝试发送编码头以及如下所示,

...
rawData: Buffer.from('Content-Type: application/pdf').toString('base64') + data;
...

但我仍然遇到同样的错误

另外,在下面尝试过,仍然出现相同的错误

Data: Buffer.from('Content-Type: application/pdf') + '\n' + rawData,

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。