gpt4 book ai didi

node.js - Amazon SES SendRawEmail (Node.JS) 中的电子邮件未显示 To :, Cc 和 Bcc

转载 作者:搜寻专家 更新时间:2023-10-31 22:51:07 27 4
gpt4 key购买 nike

跟进this solution关于在发送 RawEmail 时添加抄送和密件抄送,我在收到电子邮件时将收件人、抄送和密件抄送字段设为空白。为了最快的实现,我使用这个 OSS aws-thin-ses-node图书馆。

我的发送原始电子邮件方法定义为(收件人、抄送和密件抄送是数组,所以我只对 asOptionalArray 和 asValueFromArray 方法进行了一些调整,以按照 AWS SDK 中定义的要求格式发送)。

虽然它发送到所有收件人、抄送和密送地址,但我可以改进什么来解决这个小问题?我附上我的 sendRawEmail 和 getRawMessages 方法定义如下

sendRawEmail: async ({ to, cc, bcc data}) => {
let destinations

if (cc && cc.length && bcc && bcc.length) {
destinations = [...cc, ...bcc]
destinations.unshift(asValueFromArray(to, 0))
} else {
destinations = to
}

const params = {
Destinations: asOptionalArray(destinations),
To: to instanceof Array ? to : asOptionalArray(to),
Cc: asOptionalArray(cc),
Bcc: asOptionalArray(bcc),
RawMessage: {
Data: await getRawMessage(data)
}
}
return client.sendEmail(params)
}

const getRawMessage = (data) => {
const template = getReportTemplate()
const subject = getSubject()
const reportName = getReportName()
let sesMail = 'From: noReply <' + noreplyEmail + '>\n'
sesMail += 'Subject: ' + subject + '\n'
sesMail += 'MIME-Version: 1.0\n'
sesMail += 'Content-Type: multipart/mixed; boundary="NextPart"\n\n'
sesMail += '--NextPart\n'
sesMail += 'Content-Type: text/html\n\n'
sesMail += template.report + '\n\n'
sesMail += '--NextPart\n'
sesMail += 'Content-Type: application/msexcel; name="' + reportName + '"\n'
sesMail += 'Content-Transfer-Encoding: base64\n'
sesMail += 'Content-Disposition: attachment\n\n'
sesMail += data.toString('base64') + '\n\n'
sesMail += '--NextPart--'
// eslint-disable-next-line
const base64Encoded = new Buffer.from(sesMail).toString('base64')
return base64Encoded
}

发送原始电子邮件看起来像:

email_raw_without_to_cc_bcc

最佳答案

我终于找到了解决方案,问题是我没有按照建议在 ses 邮件 header 中定义收件人、抄送和密件抄送,我的目标数组现在为空并重写我的

const getRawMessage = (to, cc, bcc, data) => {
const template = getReportTemplate()
const subject = getSubject()
const reportName = getReportName()
let sesMail = 'From: noReply <' + noreplyEmail + '>\n'
sesMail += 'To: ' + asValueFromArray(to, 0) + '\n'
sesMail += cc && cc.length ? 'Cc: ' + asOptionalArray(cc) + '\n' : ''
sesMail += bcc && bcc.length ? 'Bcc: ' + asOptionalArray(bcc) + '\n' : ''
sesMail += 'Subject: ' + subject + '\n'
sesMail += 'MIME-Version: 1.0\n'
sesMail += 'Content-Type: multipart/mixed; boundary="NextPart"\n\n'
sesMail += '--NextPart\n'
sesMail += 'Content-Type: text/html\n\n'
sesMail += template.report + '\n\n'
sesMail += '--NextPart\n'
sesMail += 'Content-Type: application/msexcel; name="' + reportName + '"\n'
sesMail += 'Content-Transfer-Encoding: base64\n'
sesMail += 'Content-Disposition: attachment\n\n'
sesMail += data.toString('base64') + '\n\n'
sesMail += '--NextPart--'
// eslint-disable-next-line
const base64Encoded = new Buffer.from(sesMail).toString('base64')
return base64Encoded
}

关于node.js - Amazon SES SendRawEmail (Node.JS) 中的电子邮件未显示 To :, Cc 和 Bcc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57382243/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com