2

我正在使用 SendGrids Web API v3 成功发送电子邮件,但在使用模板发送电子邮件时无法让替代工作正常工作。电子邮件成功通过,但没有发生替换。这是我的(简化的)SendGrid 模板:

<html>
<head>
    <title></title>
</head>
<body>
<div>You can reset your password by clicking on this link:&nbsp;{callbackUrl}</div>

<%body%>

</body>
</html>

这是我发送的 JSON 格式的正文:

{
   "personalizations":[
      {
         "to":[
            {
               "email":"destinationemail@gmail.com"
            }
         ]
      }
   ],
   "sub" : {
        "{callbackUrl}" : "www.mysite.com/changepassword"
   },
   "from":{
      "email":"example@example.com"
   },
   "template_id" :"5f852a2e-996b-4f04-be05-31766d1092d8",
   "subject":"Reset your password",
   "content": 
   [
    {"type": "text/plain", "value": "Thank you"}]
}

电子邮件使用正确的模板、主题生成,并发送到正确的电子邮件地址,但电子邮件正文包含没有替换的模板:

You can reset your password by clicking on this link: {callbackUrl}

Thank you

我不知道我做错了什么。我正在使用当前使用 Postman 发送请求,同时尝试追踪问题。

4

1 回答 1

0

您需要使用 key substitutionsunder personalizations,而不是sub像文档中所说的那样。它的结构也不同于sub.

{
  "personalizations" : [ {
    "substitutions" : {
      ":name" : "John"
    },
    "subject" : "Hello from Java",
    "to" : [ {
      "email" : "john@example.com"
    } ]
  } ],
  "from" : {
    "email" : "john@example.com"
  },
  "template_id" : "11111111-1111-1111-1111-111111111111"
}
于 2017-12-18T10:31:54.583 回答