繁体   English   中英

SendGrid 动态模板中的基本替换

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM