[英]Basic Substitution in SendGrid Dynamic Template
我正在使用最新的 Java API 将动态模板数据设置到我的 SendGrid Email 模板中。 但是,尽管我正确传递了值(我能够在 web 仪表板中看到发送的动态值) ,但是在生成邮件时该值并未得到“表达”。
按照文档中的步骤,我尝试使用 HTML 编辑器和代码编辑器。 Java 代码如下。
personalization0.addTo(new Email("ron@xxxxx", "Ron Abraham"));
personalization0.addDynamicTemplateData("otpvalue", "123456");
mail.addPersonalization(personalization0);
mail.setTemplateId("<templateid>");
SendGrid web 编辑器中的 HTML 代码
<span style="color: #000; font-size: 18px">OTP Value : {{ otpvalue }} </span></div>
在 web 仪表板中,当我检查发送的邮件时,我看到 otpvalue 正在传递给模板。
我猜想将值写入 HTML 动态模板的方式中缺少一些东西。 任何指针?
编辑 - 在下面粘贴完整的方法代码
@PostMapping("/sendDynamicMail")
@PreAuthorize("#oauth2.hasScope('signup')")
public Response sendDynamicMailviaSendGridApi() throws IOException{
String API_KEY = "SG.**********";
Email from = new Email("*****@*****.com");
String subject = "Test Dynamic Mail from Development team";
Email to = new Email("ron@*****.com");
Content content = new Content("text/html","Replace Body Content with Dynamic Template");
Mail mail = new Mail(from,subject,to,content);
mail.setReplyTo(from);
Personalization personalization0 = new Personalization();
personalization0.addTo(new Email("ron+1@*****", "Ron Abraham"));
personalization0.addDynamicTemplateData("otpvalue", "666666");
mail.addPersonalization(personalization0);
//design first one template
mail.setTemplateId("d-6dc6223eebfc49b7b887cac1c0f34fa2");
SendGrid sg = new SendGrid(API_KEY);
Request request = new Request();
Response response;
try {
request.setMethod(Method.POST);
request.setEndpoint("mail/send");
request.setBody(mail.build());
response = sg.api(request);
System.out.println(response.getStatusCode());
System.out.println(response.getBody());
System.out.println(response.getHeaders());
return response;
}
catch(IOException io) {
throw io;
}
finally {
//do nothing
}
}
这是 HTML 动态模板的外观。 我已经尝试在几个地方使用 otp 值。
<div style="font-family: inherit; text-align: center"> <span style="color: #000; font-size: 18px">OTP Value1 : {{ otpvalue }} </span></div>
问题是如何传递个性化数据。 personalization0.addDynamicTemplateData("dynamic_template_data", "{otpvalue:454545}" );
早些时候我直接将 otp 值作为键值对传递。 在分析通过 curl 发送的格式时,我在 java 中进行了更改并且它已经工作了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.