如何解决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 举报,一经查实,本站将立刻删除。