当添加替换时,带有多个收件人的Node.js sendgrid得到空值

node.js sendgrid with multiple recipients get blank value when adding substitution

本文关键字:js Node sendgrid 空值 收件人 替换 添加      更新时间:2023-09-26

我发现使用sendgrid向多个收件人发送电子邮件时存在问题。添加代换时得到空白值

技术
  • node . js
  • sendgrid (v2)

====我的示例代码(node.js) ====

const SENDGRID_API_KEY = 'KEY'
const sendgrid = require('sendgrid')(SENDGRID_API_KEY)
function sendEmailToSupport() {
  const email = new sendgrid.Email({
      from: 'jaewwalletsupport@paysbuy.co.th',
      to: ['user_a@gmail.com', 'user_b@gmail.com', 'user_c@gmail.com']
      html: '<div>test = :test</div>',
      subject: 'dummy'
    })
  email.addSubstitution(':test', 'ddddddddddddd')
  sendgrid.send(email, (err, response) => {
    if (err) {
      console.log(err)
    } else {
      console.log('Yay! Our templated email has been sent')
    }
  })
}
module.exports = {
  sendEmailToSupport
}

====== result ======

  • user_a@gmail.com获得正确内容的电子邮件test = ddddddddddddd

  • user_b@gmail.com, user_c@gmail.com收到空白值的邮件test =

看起来email.to数组中的第一个电子邮件将获得正确的内容,其他电子邮件获得空白数据。

在sendgrid web管理中,没有错误,一切正常。

如何解决这个问题?

谢谢

在分析了sendgrid库之后,我现在通过编辑这行

找到了解决方案
email.addSubstitution(':test', new Array(email.to.length).fill('ddddddddddddd'))