我对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但似乎都不起作用。
所以,我怎么能让它发挥作用?
答案 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。这应该可以解决问题:)