C# 客户端如何将替换变量传递给 sendgrid 营销模板?

All*_*ang 0 c# sendgrid sendgrid-templates

有一个预定义的营销模板,模板的相关部分如下所示:

嗨 [%first_name | 亲爱的粉丝%],xxxxxx

sendgrid 模板变量替换有很多不同的语法,这非常令人困惑。例如,我见过 [%variable_name%]、{{variable_name}}、-variable_name- 和 <%variable_name%>

如何将替换/个性化/模板数据(只是列出我见过的似乎指代同一事物的不同名称)从 C# 客户端传递到模板?

And*_*lin 6

我假设您使用官方 SendGrid Nuget 包。在这种情况下,您可以使用该类MailHelper及其方法CreateSingleTemplateEmailCreateSingleTemplateEmailToMultipleRecipients或者CreateMultipleTemplateEmailsToMultipleRecipients根据您的需要。在最简单的情况下,它应该是这样的。

            var client = new SendGridClient(ApiKey);

            var dynamicTemplateData = new Dictionary<string, string>
            {
                {"first_name", "John"},
                {"last_name", "Snow"},
            };

            var msg = MailHelper.CreateSingleTemplateEmail(
                new EmailAddress("from@test.com"),
                new EmailAddress("to@test.com"),
                "d-template-id",
                dynamicTemplateData);


            var response = await client.SendEmailAsync(msg);
Run Code Online (Sandbox Code Playgroud)

上述方法对于交易模板肯定有效,但对于营销模板我不能 100% 确定。