让Mandrill dotnet使用把手而不是mailchimp

时间:2015-01-09 15:28:27

标签: .net handlebars.js mandrill

我对mandrill的这个api包装有疑问:https://github.com/shawnmclean/Mandrill-dotnet

我正在尝试使用一个特定模板的把手,因为它有一个对象数组,需要插入到模板中,目前我正在使用这样的合并标签:

int i =0;
foreach (var object in model.Objects)
{
    email.AddRecipientVariable(email, "OBJECT" + i + "_NAME", object.Name);
    email.AddRecipientVariable(email, "OBJECT" + i + "_VALUE1", object.Value1);
}

这使得包含* | OBJECT1_NAME | * * | OBJECT2_NAME | *的巨型电子邮件模板到处都是,并且每次都必须检查它是否存在 现在有把手,我应该能够做到这一点:

 {{#each objects}}{{this.name}}{{/each}}

但我似乎无法让mandrill接受把手作为合并语言而不是默认的mailchimp我已经尝试将其添加到标题中,因此:

var email = new EmailMessage();
email.AddHeader("merge_language", "handlebars");

email.AddMetaData("merge_language", "handlebars")

如此处指定:http://help.mandrill.com/entries/105267476-Using-Handlebars-for-dynamic-content#the-mandrill-api但似乎都不起作用。

所以,我怎么能让它发挥作用?

1 个答案:

答案 0 :(得分:1)

在看了你正在使用的API包装器后,我想我发现了你的问题:

在EmailMessage模型(https://github.com/shawnmclean/Mandrill-dotnet/blob/2ce2105ad132bb1c869c7b32e4969827bab85180/src/Mandrill/Models/EmailMessage.cs)中,我找到了一个公共属性merge_language和一个静态类“TemplateSyntax”,它定义了MailChimp和Handlebars的const字符串。尝试使用Handlebars的const字符串设置merge_language。这应该可以解决问题:)