这是我最终采用的解决方案,认为它更直接并且对人们有所帮助。
注意个性化对象形状的差异。
收件人可以看到彼此:
const sgMail = require('@sendgrid/mail')
sgMail.setApiKey(process.env.SENDGRID_API_KEY)
const FROM_EMAIL = 'example@example.io'
const subject = 'Test Email Subject'
const body = '<p>Hello HTML world!</p>'
const recipients = ['alice@example.com', 'bob@example.com']
let personalizations = [{
to: [],
subject
}]
for (let index in recipients) {
personalizations[0].to[index] = { email: recipients[index] }
}
const msg = {
personalizations,
from: FROM_EMAIL,
html: body,
}
console.log(msg)
sgMail.send(msg)
.then(() => console.log('Mail sent successfully'))
.catch(error => console.error(error.toString()))
个性化对象:
{
personalizations: [{
to: [
{email: "alice@example.com"},
{email: "bob@example.com"},
],
subject: "Test Email Subject"
}]
}
收件人无法看到彼此:
personalizations = []
for (let index in recipients) {
personalizations[index] = { to: recipients[index], subject}
}
个性化对象:
{
personalizations: [
{
to: "alice@example.com",
subject: "Test Email Subject"
},
{
to: "bob@example.com",
subject: "Test Email Subject"
}
]
}
我创建了一个完整的解决方案RunKit,您可以在其中测试它。