Не удается получить замены, работающие с SendGrid API V3
Я успешно отправляю электронные письма с помощью SendGrids Web API v3, но не могу заставить работать подстановки при отправке электронных писем с использованием шаблонов. Письма приходят успешно, но замены не происходит. Вот мой (упрощенный) шаблон SendGrid:
<html>
<head>
<title></title>
</head>
<body>
<div>You can reset your password by clicking on this link: {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
Я в растерянности относительно того, что я делаю неправильно. Я использую в настоящее время Почтальон для отправки запроса при попытке отследить проблему.
1 ответ
Вам нужно использовать ключ substitutions
под 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"
}