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

C# client how to pass subsititution variables to sendgrid marketing template?

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

Hi [%first_name | Dear Fan%], xxxxxx

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

如何从 C# 客户端向模板传递 substitution/personalization/template 数据(只是为了列出我见过的似乎指代同一事物的不同名称)?

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

            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);

上述方法肯定适用于交易模板,我不是 100% 确定营销模板。