![](/img/trans.png)
[英]Node.js: AWS SES sendRawEmail: mails not getting sent to BCC addresses
[英]Email not showing To:, Cc, and Bcc in Amazon SES SendRawEmail (Node.JS)
在發送RawEmail時,關於添加CC和BCC的解決方案 ,我收到電子郵件時收到To,Cc和Bcc字段的空白。 為了最快的實現,我正在使用這個OSS aws-thin-ses-node庫。
我發送的原始電子郵件方法定義為(to,cc和bcc是數組,因此我只需要使用asOptionalArray和asValueFromArray方法進行一些調整,以便按AWS SDK中定義的格式發送)。
雖然它發送到所有To,Cc和Bcc地址,但我可以通過哪些方法來改進這個很小的問題? 我正在附加我的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
}
發送原始電子郵件如下:
我終於找到了解決方案,問題是我沒有在ses郵件頭中定義To,Cc和Bcc,如建議的那樣,我的目標數組現在是空的並重寫我的
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
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.