微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过Powershell更新sendgrid个性化json文件

如何解决通过Powershell更新sendgrid个性化json文件

想通过powershell更新以下sendgrid个性化json文件,以添加一个电子邮件ID。

发件人:-

{
    "personalizations": [{
        "to": [{"email": "abc1@xyz.com"},{"email": "abc2@xyz.com"}]
    }]
}

收件人:-

{
    "personalizations": [{
        "to": [{"email": "abc1@xyz.com"},{"email": "abc2@xyz.com"},{"email": "abc3@xyz.com"}]
    }]
}

尝试将其保存到文件中并使用Add-Member,但这没有用。

$EmailTemplateFilePath = "C:\EmailTemplate.json"
$body = [System.IO.File]::ReadAllText($EmailTemplateFilePath)
$body = ConvertFrom-Json -InputObject $body

解决方法

# Parse the input JSON into a custom object ([pscustomobject]).
$obj = (@'
{
  "personalizations": [{
      "to": [{"email": "abc1@xyz.com"},{"email": "abc2@xyz.com"}]
  }]
}
'@ | ConvertFrom-Json)

# Append a new custom object with a new email address.
$obj.personalizations[0].to += [pscustomobject] @{ email = 'abc3@xyz.com' }

# Convert back to JSON.
$obj | ConvertTo-Json -Depth 3

请注意,-Depth 3令人遗憾地需要确保将JSON解析对象正确地转换回JSON-请参见this GitHub issue

以上结果:

{
  "personalizations": [
    {
      "to": [
        "@{email=abc1@xyz.com}","@{email=abc2@xyz.com}","@{email=abc3@xyz.com}"
      ]
    }
  ]
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。